gpt4 book ai didi

lisp - 使用方案中的列表

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

我有这个功能:

(define (unfold f init)
(if (eq? (f init) '())
(list)
(cons (car (f init)) (unfold f (cdr (f init))))))

我想用它来定义一个函数:

(hypothetical-function '(1 2 3 4 5))

应该返回:

'((1 2 3 4 5) (2 3 4 5) (3 4 5) (4 5) (5)

最佳答案

好吧,你想要

(define (tails xs) (unfold foo xs))

为此,您需要定义适当的 foo。现在,foo 应该做什么?它应该返回一对,第一个组件成为结果列表的 car,第二个组件成为递归调用的种子 - 除非展开要停止,当 foo 应该返回一个空列表。所以

(define (foo xs)
(if (stop-condition)
'()
(cons car-of-result next-seed)))

填写其余详细信息作为练习留给读者。

关于lisp - 使用方案中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9291859/

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