读取-求值-输出

在编写我们的 Lisp 之前,我们需要寻找一种和它交互的方式。最简单的方法,我们可以修改代码,重新编译,然后再次运行。这个方案虽然理论上可行,但是太为繁琐。如果可以动态地和程序进行交互,我们就可以快速地测试程序在各种条件下的行为。我们称这种模式为交互提示。

这种模式下的程序读取用户的输入,在程序内部进行处理,然后返回一些信息给用户。这种系统也被叫做 REPL,是 read-evaluate-print loop (读取-求值-输出循环) 的简写。这种技术被广泛地应用在各种编程语言的解释器中,如果你学过 Python,那你一定不会陌生。

在编写一个完整的 REPL 之前,我们先实现一个简单的程序:读取用户的输入,简单处理后返回给用户。在后面的章节中,我们会对这个程序不断扩展,最后能够正确地读取并解析一个真正的 Lisp 程序,并将结果返回给用户。