对或错?
Common Lisp有很多功能.所有这些功能都是使用这一小组核心功能构建的(或可以构建的):CAR,CDR,CONS,ATOM,EQ,QUOTE,COND,LAMBDA,LABEL,NULL.
如果答案是False,您能提供一个使用核心功能无法实现的功能示例吗?核心功能列表可能不完整,还需要另外两个核心功能吗?
[..]所有这些功能都是使用[..] 构建的(或可以构建的)
最重要的部分是可能,你已经想通了自己.(几乎*)所有(a)Lisp都可以使用一小组核心函数(形式)构建,这是Lisp之美的一部分.但实际上,在Lisp中未实现的函数(表单)集合要大得多.
当他们只能实现那个最小的核心时,为什么实现那么费力呢?作为一个小例子,想想这个表达式:
(+ 1 2)
Run Code Online (Sandbox Code Playgroud)
你可以实现一个只使用一小组核心函数的Lisp,它可以(给定一个适当的数字解析器)来计算这个表达式.但它会很痛苦!我们可用的系统(CPU)主要提供许多不同的指令,Lisp实现(特别是编译实现)尽可能地利用它们以便快速执行Lisp程序.并且,回到示例,这也意味着不会使用peano算法进行实际计算,而是使用硬件中实现的"布尔逻辑算法".
如果答案是False,您能提供一个使用核心功能无法实现的功能示例吗?
这很简单,你是如何实现的format
?任何不属于编程语言"算法"性质的东西,即与"外部世界"接口的东西,往往不是自己实现的,而是依赖于底层系统 - 最常见的是C语言或汇编语言.
归档时间: |
|
查看次数: |
406 次 |
最近记录: |