diff options
Diffstat (limited to 'racket.html.markdown')
-rw-r--r-- | racket.html.markdown | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/racket.html.markdown b/racket.html.markdown index d43ac5e2..fbd3f76a 100644 --- a/racket.html.markdown +++ b/racket.html.markdown @@ -354,11 +354,17 @@ m ; => '#hash((b . 2) (a . 1) (c . 3)) <-- no `d' ;; 6. Mutation ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Use set! to assign a new value to an existing variable +;; Use `set!' to assign a new value to an existing variable (define n 5) -(set! n 6) +(set! n (add1 n)) n ; => 6 +;; Use boxes for explicitly mutable values (similar to pointers or +;; references in other languages) +(define n* (box 5)) +(set-box! n* (add1 (unbox n*))) +(unbox n*) ; => 6 + ;; Many Racket datatypes can be immutable or mutable ;; (Pairs, Lists, Strings, Vectors, Hash Tables, etc...) |