summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--racket.html.markdown10
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...)