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 save-to-stream restore-from-stream
))
15 (defparameter *saved-numbers
* nil
)
16 (defparameter *saved-tuples
* nil
)
17 (defparameter *saved-matrices
* nil
)
19 ;V Get a variable out of memory.V
21 (k &optional
(ksym (find-symbol k
:lineal.client-vars
)))
25 `(setf ,lis
(delete k
,lis
:test
#'string
=))))
26 (when (and ksym
(boundp ksym
))
27 (typecase (symbol-value ksym
)
28 (number (del-k-from *saved-numbers
*))
29 (tuple (del-k-from *saved-tuples
*))
30 (mtrix (del-k-from *saved-matrices
*)))
33 (defun over-recall (&rest args
)
34 (mapc #'recall-vrbl args
)
35 (format nil
"Recalled: ~{~A~#[~:;, ~]~}" args
))
38 (k v
&optional
(ksym (intern k
:lineal.client-vars
)))
42 `(setf ,lis
(merge 'list
,lis
(list k
)
44 ;V If something's already stored V
45 ;V under the name, recall it. V
49 (number (add-k-to *saved-numbers
*))
50 (tuple (add-k-to *saved-tuples
*))
51 (mtrix (add-k-to *saved-matrices
*))))
54 (defun over-store (k v
)
59 "Store usage: (store \"[name]\" [value])
60 where [name] is what you want the variable to be called
61 and [value] is its desired value.")))
64 (store-vrbl "e" (exp 1))
65 (store-vrbl "i" (complex 0 1))