From bf114841ca9b5a1afce32d915a812c66b51ebb19 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Sun, 5 May 2024 08:33:16 +0200 Subject: [PATCH] experiments with iterator --- scratch.lisp | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/scratch.lisp b/scratch.lisp index 4cb0781..86736ba 100644 --- a/scratch.lisp +++ b/scratch.lisp @@ -11,6 +11,14 @@ ;;; real scratch area +(defun make-iter () + (let ((pointers (vector nil nil nil))) + #'(lambda (fn) + (funcall fn pointers)))) + +(defun iter-current (it) + (funcall it #'(lambda (p) (car (svref p 0))))) + (defun classes () (let ((r nil)) (maphash #'(lambda (k v) @@ -31,13 +39,3 @@ (defun x-put-var (vf value) (funcall vf value)) -(defun make-var (val) - (let ((var (list val))) - #'(lambda (fn) - (funcall fn var)))) - -(defun get-var (vf) - (funcall vf #'(lambda (x) (car x)))) - -(defun set-var (vf nv) - (funcall vf #'(lambda (x) (setf (car x) nv))))