gpt4 book ai didi

lisp - 方案符号等价

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

我正在使用的平台是 DrScheme。

我已经看到一对 (a b) [由 (cons a b) 构造] 在语言中实现,就像一个看起来像这样的过程:

(define (cons a b)
(lambda(pick)
(cond ((= pick 1) a)
((= pick 2) b))))

和选择器:

(define (car x) (x 1))
(define (cdr x) (x 2))

然后是列表,用类似 (cons a (cons b (cons c (cons ...)))) 的表达式构造。

现在,我试图理解的是这个(在 DrScheme 的提示下键入):

> (define l1 '(a b c))
> (define l2 (list 'a 'b 'c))
> l1
(a b c)
> l2
(a b c)
> (eq? l1 l2)
#f

好吧,l2 只是一个列表(也就是一个过程,等等...)就像我描述的 abode,但是...什么 是 l1?符号?字符序列?不管它是什么,它是如何在语言中实现的?谢谢!

最佳答案

l1 也只是一个包含相同元素的列表。请注意,这也会返回 #f:

(define l1 '(a b c))
(define l2 '(a b c))
(eq? l1 l2)

虽然这会返回 #t:

(define l1 '(a b c))
(define l2 (list 'a 'b 'c))
(equal? l1 l2)

原因是eq?检查l1l2是否是对内存中同一个对象的引用,而equal? 检查它们是否具有相同的内容。

关于lisp - 方案符号等价,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3128943/

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