1
3
是的,这是预期的行为。 Picolisp可能会反复评估列表中的汽车,直到它撞到 在一个函数上。函数可以是一个列表(然后是一个lisp级别 函数)或短数字(然后是内置函数,写入 ASM或C)。如果该数字不指向可执行代码 (在运行时很难检查)发生崩溃。 我认为这样的崩溃是一个“扩展的错误信息”:为什么不让 硬件(MMU)执行运行时检查? 一般来说,不可能让口译员 可能的错误(例如,考虑无限循环),所以picolisp采用 给程序员一些责任的立场。 在实践中,像上面这样的错误首先会被检测出来。 程序的测试运行。 顺便说一句,上述规则的一个例外只是直接具有 车上的号码。这样的列表会自动计算:
只是一个方便的特性,不必引用这样的常量列表。
在这种情况下,(a b c)实际上是一个法律功能定义:它是 带有单个符号参数“a”的函数(这样函数就不会 评估它的参数),以及由两个符号组成的主体。这是等效的 到
执行此函数时,它将参数列表(3)绑定到 符号“a”,然后执行“b”和“c”。此函数返回值 “c”,在您的示例中为零。
对的。
你说的是对的。翻译在这个地方碰到了“1” 所需的函数参数。
|