gpt4 book ai didi

common-lisp - "On Lisp": `(a b c) vs ' (a b c) vs (list 'a ' b 'c)

转载 作者:行者123 更新时间:2023-12-01 10:29:22 25 4
gpt4 key购买 nike

On Lisp(第 84 页)中,Graham 说

‘(a b c) (without comma) is equal to ’(a b c)

然后说

A backquoted list is equivalent to a call to list with the elements quoted.
That is, ‘(a b c) (without comma) is equal to (list ’a ’b ’c).

一个陈述必须是错误的,因为 '(a b c)(list 'a 'b 'c) 似乎不相等。后者是一个新的 consed 列表(可以安全修改),而前者是一个常量——或者至少规范允许编译器这样对待它。

所以这可能是一个非常挑剔的问题,但它是一个反引号列表(没有逗号),例如 '(a b c) 等于 '(a b c) 或等于 (列出 'a 'b 'c)?

最佳答案

EqualEquivalent 不一样。

当然 (equal '(a b c) (list 'a 'b 'c)) 返回 t,但是,正如您正确地注意到自己,'( a b c) 是一个带引号的常量,而 (list 'a 'b 'c) 是新分配的。

关于common-lisp - "On Lisp": `(a b c) vs ' (a b c) vs (list 'a ' b 'c),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44335086/

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