Clojure编程:读取、求值与宏的奥秘
1. 读取器(The Reader)
读取器的作用是将我们保存在文件中或者在REPL(Read-Eval-Print-Loop)里输入的文本源代码转化为Clojure的数据结构。可以把它想象成一个翻译官,在人类使用的Unicode字符世界和Clojure的列表、向量、映射、符号等数据结构世界之间搭建桥梁。
1.1 读取操作(Reading)
在REPL中,当我们输入文本时,Clojure会按照特定流程处理。比如,REPL会先给出提示:
user=>
然后我们输入一段文本,像这样:
user=> (str "To understand what recursion is," " you must first understand recursion.")
这段文本本质上是一串Unicode字符,但它代表着Clojure数据结构的组合,这种数据结构的文本表示形式被称为读取器形式(reader form)。在这个例子中,该形式代表一个列表数据结构,其中包含三个子形式: str 符号和两个字符串。
当我们输入字符并按下回车键后,文本会被送到读取器(因为REPL的含义就是读取 - 求值 - 打印 - 循环)。Clojure会读取字符流,并在内部生成相应的数据结构,接着对这些数据结构进行求值,最后打印出结果的文本表示:
"To understand what r
超级会员免费看
订阅专栏 解锁全文
302

被折叠的 条评论
为什么被折叠?



