RosettaCodeData/Task/Multiple-distinct-objects/EchoLisp/multiple-distinct-objects.l

16 lines
494 B
Common Lisp

;; wrong - make-vector is evaluated one time - same vector
(define L (make-list 3 (make-vector 4)))
L (#(0 0 0 0) #(0 0 0 0) #(0 0 0 0))
(vector-set! (first L ) 1 '🔴) ;; sets the 'first' vector
L (#(0 🔴 0 0) #(0 🔴 0 0) #(0 🔴 0 0))
;; right - three different vectors
(define L(map make-vector (make-list 3 4)))
L (#(0 0 0 0) #(0 0 0 0) #(0 0 0 0))
(vector-set! (first L ) 1 '🔵) ;; sets the first vector
L (#(0 🔵 0 0) #(0 0 0 0) #(0 0 0 0)) ;; OK