Common Lisp:所有功能都是由核心功能CAR,CDR,CONS等构建的吗?

Rog*_*llo 0 lisp common-lisp

对或错?

Common Lisp有很多功能.所有这些功能都是使用这一小组核心功能构建的(或可以构建的):CAR,CDR,CONS,ATOM,EQ,QUOTE,COND,LAMBDA,LABEL,NULL.

如果答案是False,您能提供一个使用核心功能无法实现的功能示例吗?核心功能列表可能不完整,还需要另外两个核心功能吗?

Dan*_*our 7

[..]所有这些功能都是使用[..] 构建的(或可以构建的)

最重要的部分是可能,你已经想通了自己.(几乎*)所有(a)Lisp都可以使用一小组核心函数(形式)构建,这是Lisp之美的一部分.但实际上,在Lisp中未实现的函数(表单)集合大得多.

当他们只能实现那个最小的核心时,为什么实现那么费力呢?作为一个小例子,想想这个表达式:

(+ 1 2)
Run Code Online (Sandbox Code Playgroud)

可以实现一个只使用一小组核心函数的Lisp,它可以(给定一个适当的数字解析器)来计算这个表达式.但它会很痛苦!我们可用的系统(CPU)主要提供许多不同的指令,Lisp实现(特别是编译实现)尽可能地利用它们以便快速执行Lisp程序.并且,回到示例,这也意味着不会使用peano算法进行实际计算,而是使用硬件中实现的"布尔逻辑算法".

如果答案是False,您能提供一个使用核心功能无法实现的功能示例吗?

这很简单,你是如何实现的format?任何不属于编程语言"算法"性质的东西,即与"外部世界"接口的东西,往往不是自己实现的,而是依赖于底层系统 - 最常见的是C语言或汇编语言.