Elf*_*erg 4 lisp clojure common-lisp
我对理解Lisp有一点小问题.根据Common Lisp标准,表单是要评估的原子或列表.这似乎很容易.
在现实世界中,我们目前将程序存储在文件中.SBCL,Clojure等都具有可以评估的文件的概念.
这是怎么理解的?最终处理的文件最终就像要评估的单个表单一样,它是一个表单集合吗?出于某种原因,这让我很困惑.
use*_*lpa 11
根据CLHS:
load sequentially executes each form it encounters in the file
named by filespec
Run Code Online (Sandbox Code Playgroud)
这意味着文件是一系列表单.
文件是存储表单的位置.打开文件(带OPEN或WITH-OPEN-FILE)提供了一个流,该READ函数可以将流中的表单读入可以评估或编译的对象中.
在Common Lisp中,重要的是要意识到程序的语义是在读取产生的对象上定义的,而不是文件中存储的文本.
http://l1sp.org/cl/3.2.3可能有助于从编译角度理解它.
http://l1sp.org/cl/24.1.1谈论负载.