Code: Select all
(define-macro (foo) (first (args 0)))
(setf bar '(1 2 3))
(setf (foo bar) 3)
; bar now is '(3 2 3)
Code: Select all
(define-macro (foo) (first (args 0)))
(setf bar '(1 2 3))
(setf (foo bar) 3)
; bar now is '(3 2 3)
Code: Select all
(set 'Mydb:Mydb (sequence 1 100))
(define (change-db obj idx value)
(setf (obj idx) value))
(change-db Mydb 50 "abcdefg")
(Mydb 50) => "abcdefg"
Code: Select all
(set 'random-reference
(lambda-macro(list-name)
(list list-name (rand (length (eval list-name))))))
; (random-reference L) => (L 3), (L 7), (L 2), ...
(set 'setg (lambda(x y)
(letex ((x x))
(setf x y))))
(setg 'L '(1 2 3 4 5))
(for (j 100 110)
(setg (random-reference L) j)
(println "L=" L))
(exit)
L=(100 2 3 4 5)
L=(100 2 101 4 5)
L=(102 2 101 4 5)
L=(102 2 101 4 103)
L=(102 2 104 4 103)
L=(102 2 105 4 103)
L=(102 106 105 4 103)
L=(102 106 105 4 107)
L=(102 106 105 4 108)
L=(102 106 105 109 108)
L=(110 106 105 109 108)