2 (defpackage :lineal.client-vars
)
5 (:use
:cl
:lineal.overload
)
6 (:export
*saved-numbers
*
7 *saved-tuples
* *saved-matrices
*
9 process-input-from-stream
10 process-input-from-string
11 process-infix-from-string
12 save-to-stream restore-from-stream
))
16 (defparameter *saved-numbers
* nil
)
17 (defparameter *saved-tuples
* nil
)
18 (defparameter *saved-matrices
* nil
)
20 ;V Get a variable out of memory.V
22 (k &optional
(ksym (find-symbol k
:lineal.client-vars
)))
26 `(setf ,lis
(delete k
,lis
:test
#'string
=))))
27 (when (and ksym
(boundp ksym
))
28 (typecase (symbol-value ksym
)
29 (number (del-k-from *saved-numbers
*))
30 (tuple (del-k-from *saved-tuples
*))
31 (mtrix (del-k-from *saved-matrices
*)))
34 (defun over-recall (&rest args
)
35 (mapc #'recall-vrbl args
)
36 (format nil
"Recalled: ~{~A~#[~:;, ~]~}" args
))
39 (k v
&optional
(ksym (intern k
:lineal.client-vars
)))
43 `(setf ,lis
(merge 'list
,lis
(list k
)
45 ;V If something's already stored V
46 ;V under the name, recall it. V
50 (number (add-k-to *saved-numbers
*))
51 (tuple (add-k-to *saved-tuples
*))
52 (mtrix (add-k-to *saved-matrices
*))))
55 (defun over-store (k v
)
60 "Store usage: (store \"[name]\" [value])
61 where [name] is what you want the variable to be called
62 and [value] is its desired value.")))