Skip to content

Commit 75fac41

Browse files
committed
cleanup on syntax page
1 parent ac4b4b4 commit 75fac41

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

src/cljlab/syntax.clj

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@ clojure.core/+ ; Namespaced symbol
7070
;;; In Clojure, source code is read as characters by the Reader. The Reader may read the source either from .clj files or be given a series of expressions interactively. The Reader produces Clojure data. The Clojure compiler then produces the bytecode for the JVM.
7171
;;;
7272
;;; There are two important points here:
73-
;;; 1. The unit of source code is a Clojure expression, not a Clojure source file. Source files are read as a series of expressions or individual expressions may be sent interactively.
74-
;;; 2. Separating the Reader and the Compiler is a key feature that allows for macros. Macros take code as data, and emit code as data. Can you see where a loop for macro expansion could be inserted in the evaluation model?
73+
;;; 1. The unit of source code is a *Clojure expression*, not a Clojure source file. Source files are read as a series of expressions, just as if you typed those expressions interactively at the REPL.
74+
;;; 2. Separating the Reader and the Compiler is a key separation that makes room for macros. Macros are special functions that take code (as data), and emit code (as data). Can you see where a loop for macro expansion could be inserted in the evaluation model?
7575
;; **
7676

7777
;; **
@@ -114,7 +114,7 @@ clojure.core/+ ; Namespaced symbol
114114
;; **
115115

116116
;; **
117-
;;; Sometimes it's useful to avoid the evaluation rules, in particular for symbols and lists. Sometimes a symbol should just be a symbol:
117+
;;; Sometimes it's useful to avoid the evaluation rules, in particular for symbols and lists. Sometimes a symbol should just be a symbol without looking up what it refers to:
118118
;; **
119119

120120
;; @@
@@ -125,7 +125,7 @@ clojure.core/+ ; Namespaced symbol
125125
;; <=
126126

127127
;; **
128-
;;; And sometimes a list should just be a list of data (not code):
128+
;;; And sometimes a list should just be a list of data values (not code to evaluate):
129129
;; **
130130

131131
;; @@
@@ -159,7 +159,7 @@ clojure.core/+ ; Namespaced symbol
159159
;; <=
160160

161161
;; **
162-
;;; For now, don't worry too much about quote but it shows up on this page once or twice to delay evaluation of symbols or lists.
162+
;;; For now, don't worry too much about quote but you will see it occasionally in these materials to avoid evaluation of symbols or lists.
163163
;; **
164164

165165
;; **
@@ -172,7 +172,7 @@ clojure.core/+ ; Namespaced symbol
172172
;;; 3. Print the result by converting it from data back to characters.
173173
;;; 4. Loop back to the beginning.
174174
;;;
175-
;;; One important aspect of #2 is that Clojure always compiles the expression before executing it; Clojure is never interpreted, always compiled first.
175+
;;; One important aspect of #2 is that Clojure always compiles the expression before executing it; Clojure is **always** compiled to JVM bytecode. There is no Clojure interpreter.
176176
;; **
177177

178178
;; @@

0 commit comments

Comments
 (0)