Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Common lisp 使用公共Lisp创建一对对_Common Lisp_Cons - Fatal编程技术网

Common lisp 使用公共Lisp创建一对对

Common lisp 使用公共Lisp创建一对对,common-lisp,cons,Common Lisp,Cons,我需要使用CommonLisp创建一个包含两个对的对 输出需要是: ((1.2)。(3.4)) 文献说明(cons(cons 1 2)(cons 3 4))应该输出我需要的东西,但当我运行时,我得到: ((1.2)3.4) 感谢您的帮助。这样就可以了:(cons(cons 1 2)(cons(cons 3 4)空)) 祝你好运 在Lisp中 ((1.2)。(3.4)) 及 ((1.2)3.4) 完全一样。您可以通过计算”((1.2)。(3.4))进行检查 如果你想一想,3是cdr的汽车,所以它是

我需要使用CommonLisp创建一个包含两个对的对

输出需要是:
((1.2)。(3.4))

文献说明
(cons(cons 1 2)(cons 3 4))
应该输出我需要的东西,但当我运行时,我得到:
((1.2)3.4)

感谢您的帮助。

这样就可以了:
(cons(cons 1 2)(cons(cons 3 4)空))

祝你好运

在Lisp中

((1.2)。(3.4))

((1.2)3.4)

完全一样。您可以通过计算
”((1.2)。(3.4))
进行检查

如果你想一想,
3
是cdr的汽车,所以它是不正确列表的第二个元素,所以对
(1.2)
是第一个元素,
3
作为第二个元素,它有
4
来终止它

它们只是两种查看相同配置的方式:

#xA
10
完全相同,但打印时,系统设置决定了数字的打印方式。原因是fixnum没有基,但是视觉表示有基。正如
#xA
10
相同,
((1.2)。(3.4))
((1.2)3.4)
相同

错觉是我们有清单。为了做到这一点,我们将具有nil或一对作为尾部的对显示为与具有其他值作为尾部的对不同的对。。列表
(12)
建模为
(1.(2)()
。规则是这样的:只要尾是nil或一对,就可以省略这对点和尾的第一个括号。递归地应用它,
(1.(2)()
显示为
(12)
((1.2)。(3.4))
显示为“((1.2)3.4”)

为了使幻觉完整,读取器执行相反的操作,因此当它读取
(12)
时,它会在内存中创建
(1.(2)()


要真正成为一名优秀的Lisp程序员(使用任何方言),您需要能够看到
(12)
中省略的点和括号。当您这样做时,您需要用
(a(b c)d)
做什么才能检索
c
(显然是
(cadadr'(a(b c)d))
)。当你掌握了这一点,你会“看到”
((1.2)。(3.4))

谢谢,这更接近我所需要的,但是它仍然没有提供区分两个pairsis
空的点(
)应该是
”()
?这是
((1.2)(3.4))
这不是@Higgins所要求的结构。谢谢,这是有道理的。节日快乐。这个问题的可能重复是询问Scheme中的案例,但Common Lisp和Scheme的conses和打印约定是相同的。它可能不是重复的(注意“可能”),但我认为解释cons单元格和点的打印约定的答案将解释为什么
((1.2)3.4)
((1.2)。(3.4))
只是同一事物的不同视觉表示。
CL-USER 4 > (equal '((1 . 2) . (3 . 4))
                   '((1 . 2)    3 . 4 ))
T