experiments with closure-based variables
This commit is contained in:
parent
c2b48289ab
commit
6e40672f10
1 changed files with 23 additions and 0 deletions
23
scratch.lisp
23
scratch.lisp
|
@ -18,3 +18,26 @@
|
|||
(sort r #'(lambda (x y)
|
||||
(string<= (package-name (symbol-package x))
|
||||
(package-name (symbol-package y)))))))
|
||||
|
||||
(defun x-make-var (value)
|
||||
#'(lambda (&optional (nv nil))
|
||||
(if (eq nv nil)
|
||||
value
|
||||
(setf value nv))))
|
||||
|
||||
(defun x-get-var (vf)
|
||||
(funcall vf))
|
||||
|
||||
(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))))
|
||||
|
|
Loading…
Add table
Reference in a new issue