- 概述
在REPL中,用户输入一个或多个表达式(而不是整个编译单元),REPL评估它们并显示结果。名称read-eval-print循环来自实现此功能的Lisp原语函数的名称:
读取函数接受来自用户的表达式,并将其解析为存储器中的数据结构。例如,用户可以输入s表达式(+ 1 2 3),其被解析为包含四个数据元素的链表。
eval函数接受这个内部数据结构并对其进行计算。在Lisp中,以函数名称开始的s表达式的计算意味着对构成表达式其余部分的参数调用该函数。因此,对参数1 2 3调用函数+,得到结果6。
打印函数接收eval生成的结果,并将其打印给用户。如果它是一个复杂的表达式,它可以是漂亮的打印,使其更容易理解。在这个例子中,虽然,数字6不需要太多的格式打印。
然后开发环境返回到读状态,创建一个循环,当程序关闭时,循环终止。
REPL有助于探索性编程和调试,因为程序员可以在决定为下一次读取提供什么表达式之前检查打印结果。 read-eval-print循环包括程序员