mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-12-23 15:24:09 +03:00
swap' ->
swap!'
This commit is contained in:
parent
fbd215521f
commit
7a92ee7ab8
@ -441,7 +441,7 @@ vec ; => #(1 2 3 4)
|
||||
(set! i (add1 i))))
|
||||
|
||||
;; Macros are hygienic, you cannot clobber existing variables!
|
||||
(define-syntax-rule (swap x y)
|
||||
(define-syntax-rule (swap! x y) ; -! is idomatic for mutation
|
||||
(let ([tmp x])
|
||||
(set! x y)
|
||||
(set! y tmp)))
|
||||
@ -449,7 +449,7 @@ vec ; => #(1 2 3 4)
|
||||
(define tmp 1)
|
||||
(define a 2)
|
||||
(define b 3)
|
||||
(swap a b)
|
||||
(swap! a b)
|
||||
(printf "tmp = ~a; a = ~a; b = ~a\n" tmp a b) ; tmp is unaffected
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
Loading…
Reference in New Issue
Block a user