【发布时间】:2020-02-10 17:29:27
【问题描述】:
尝试递归地将列表 a 中的每个元素附加到列表 c。目前只有一个元素被附加。我究竟做错了什么?我',试图颠倒一个列表。但目前无法理解如何将一个列表附加到另一个列表。
(define a '(1 2 3))
(define c '())
(define fun
(lambda (() l1) l1
(l l1) (append l1 (car l)) (fun (cdr l) l1)
))
(fun a c)
我正在使用解释器之类的方案,除了 listfunctions 之外,我不能使用任何新的内置函数。
【问题讨论】:
-
查看 Scheme 语法并与您的 Lambda 表单进行比较。
-
这种类似于 Scheme 的语言并不广为人知。它似乎是特定于你正在学习的任何课程。
-
我认为,为了让人们有希望回答您的问题,您需要参考您正在使用的实现,它与标准方案相去甚远。特别是提供一个指向文档实现的指针将是一个好的开始。
-
除非你的语言是这样的
append是破坏性的(通常不是),你的函数的结果只是(fun (cdr l) l1),如果你需要使用(append l1 (car l))希望它成为结果的一部分。