diff options
author | Adam Bard <github@adambard.com> | 2013-07-29 00:05:16 -0700 |
---|---|---|
committer | Adam Bard <github@adambard.com> | 2013-07-29 00:05:16 -0700 |
commit | 8f058a229a8f86afce012f2cce7a278195a945ae (patch) | |
tree | 4e5afd207c8573ba59ffa119403863229a00f180 | |
parent | a7fe2983ccbe5de97d5f21ee1ee0e2aac1e0be16 (diff) | |
parent | 3c3fb648203286da63f5b5c60c380568ec9b17f5 (diff) |
Merge pull request #142 from gustavoschmidt/master
Fix hygienic macro example in racket.html.markdown
-rw-r--r-- | racket.html.markdown | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/racket.html.markdown b/racket.html.markdown index b6c1f86b..adacd91d 100644 --- a/racket.html.markdown +++ b/racket.html.markdown @@ -5,6 +5,7 @@ filename: learnracket.rkt contributors: - ["th3rac25", "https://github.com/voila"] - ["Eli Barzilay", "https://github.com/elibarzilay"] + - ["Gustavo Schmidt", "https://github.com/gustavoschmidt"] --- Racket is a general purpose, multi-paradigm programming language in the Lisp/Scheme family. @@ -555,11 +556,15 @@ vec ; => #(1 2 3 4) (set! x y) (set! y tmp))) -(define tmp 1) -(define a 2) -(define b 3) -(swap! a b) -(printf "tmp = ~a; a = ~a; b = ~a\n" tmp a b) ; tmp is unaffected +(define tmp 2) +(define other 3) +(swap! tmp other) +(printf "tmp = ~a; other = ~a\n" tmp other) +;; The variable `tmp` is renamed to `tmp_1` +;; in order to avoid name conflict +;; (let ([tmp_1 tmp]) +;; (set! tmp other) +;; (set! other tmp_1)) ;; But they are still code transformations, for example: (define-syntax-rule (bad-while condition body ...) |