gpt4 book ai didi

functional-programming - 老练的阴谋家 : Intersectall (page 49)

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

The Seasoned Schemer 的第 49 页,我无法理解以下代码(第 14-16 行)中发生了什么:

(define intersectall
(lambda (lset)
(letcc hop
(letrec
((A (lambda (lset)
(cond ((null? (car lset)) (hop '()))
((null? (cdr lset)) (car lset))
(else (I (car lset)
(A (cdr lset)))))))
(I (lambda (s1 s2)
(letrec
((J (lambda (s1)
(cond ((null? s1) '())
((member? (car s1) s2) (J (cdr s1))) ; (14)
(else (cons (car s1) ; (15)
(J (cdr s1)))))))) ; (16)
(cond ((null? s2) '())
(else (J s1)))))))
(cond ((null? lset) '())
(else (A lset)))))))

我的疑问在第 14 行:

((member? (car s1) s2) (J (cdr s1)))

如果 (car s1)s2 的成员,它不应该包含在结果中吗?同样,在第 15 和 17 行:

(else (cons (car s1) (J (cdr s1))))))))

如果它不是 s2 的成员,难道不应该跳过它进入结果吗?

最佳答案

没关系......这是一个错误:

http://www.ccs.neu.edu/home/matthias/BTSS/errata.html

第13章

第49页:A4:交换J的条件的最后两个子句的答案

第 50 页:Q2:交换 J 的条件的最后两个子句的答案

关于functional-programming - 老练的阴谋家 : Intersectall (page 49),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24343999/

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