Function 口齿不清-CONS需要做什么?

Function 口齿不清-CONS需要做什么?,function,lisp,common-lisp,environment,cons,Function,Lisp,Common Lisp,Environment,Cons,我在一次考试中遇到了这个问题,你将如何解决它? CONS是一个基本的通用Lisp函数。公共Lisp环境必须提供哪些功能才能使其正常工作?如果没有它,这段代码会怎么样 defun testn l1 l2 当加上 附加l1-l2 一些1-n l1 l2 提示>测试四十二个'4'2从哪个角度 从语言实现者那里,您需要内存和一个数据类型,该数据类型接受两个指针,可能还有type和gc的标志,除非它嵌入到指针中 对于开发人员来说,它需要两个参数来保存任何数据。reader和append都使用它,因此如果没

我在一次考试中遇到了这个问题,你将如何解决它? CONS是一个基本的通用Lisp函数。公共Lisp环境必须提供哪些功能才能使其正常工作?如果没有它,这段代码会怎么样

defun testn l1 l2 当加上 附加l1-l2 一些1-n l1 l2


提示>测试四十二个'4'2

从哪个角度


从语言实现者那里,您需要内存和一个数据类型,该数据类型接受两个指针,可能还有type和gc的标志,除非它嵌入到指针中


对于开发人员来说,它需要两个参数来保存任何数据。reader和append都使用它,因此如果没有它,您将不会有cons单元格,因此也不会有列表

你确定你的问题复制正确吗?这几乎毫无意义。为什么你要通过符号四十二不加引号!作为第一个参数,从代码中可以清楚地看出您必须提供一个数字?另外,您是否尝试过在Lisp中查找有关列表结构的任何信息?常见lisp cons的谷歌搜索结果的顶行包括以下来源:和。第二个链接应该为您提供有关该主题的足够信息。我怀疑这个问题的预期答案取决于课程中教授的一些功能概念。对于语言实现者来说,您需要内存和数据类型,这些数据类型需要两个指针,可能还有类型和gc的标志,除非它嵌入到指针中。这可能意味着在实现细节方面有点太多了。词汇闭包就足够了。例如。您需要保证的是car cons 1 2=>1和cdr cons 1 2=>2。@JoshuaTaylor如果要在环境中实现cons,您需要将内存和指针要求移动到闭包的实现中。IMO cons比关闭更容易实施。这非常类似于您可以使用if实现cond,反之亦然,但其中一个需要作为原语来实现以使其工作。