gpt4 book ai didi

lisp - Scheme 如果 pair 以空格字符结尾,结果将在两个元素之间有一个点

转载 作者:太空宇宙 更新时间:2023-11-03 18:56:48 25 4
gpt4 key购买 nike

如果对以空格字符结尾,为什么结果值包含一个点(.)?这个点 (.) 是什么意思?

(cons 1 2 )
;Value 2: (1 . 2)

(car (cons 1 2 ))
;Value: 1

(cdr (cons 1 2 ))
;Value: 2

这个看起来很愚蠢,因为 pair 只包含两个元素。

我只想知道为什么第一个表达式在结果中回显一个点!

(cadr (cons 1 2 ))
;The object 2, passed as an argument to safe-car, is not a pair.
;To continue, call RESTART with an option number:
; (RESTART 1) => Return to read-eval-print level 1.

谢谢!

最佳答案

CONS 构成一对。一对二的东西。它被写成 (firstthing . secondthing)

如果第二个东西是空列表,写成(firstthing)。它与 (firstthing . ()) 相同。

因为cons构造了一个cons,所以(cons 1 2)的结果是(1 . 2)

(cadr (cons 1 2)) 是一个错误。它是 (car (cdr (cons 1 2))(cdr (cons 1 2)2。现在 (car 2) 是错误的。你不能乘坐 2汽车2 是一个数字,不是一个缺点。

如果你想创建一个由 cons 单元格或空列表组成的列表,请使用函数 list

关于lisp - Scheme 如果 pair 以空格字符结尾,结果将在两个元素之间有一个点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13393566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com