List 试图在Scheme中反转列表
预先警告:这是一个家庭作业问题。我正在尝试编写一个可以反转列表的Scheme函数(1 2 3)变为“(3 2 1)等。我不允许使用执行此操作的预定义函数 我在这里写的对吗List 试图在Scheme中反转列表,list,recursion,scheme,reverse,List,Recursion,Scheme,Reverse,预先警告:这是一个家庭作业问题。我正在尝试编写一个可以反转列表的Scheme函数(1 2 3)变为“(3 2 1)等。我不允许使用执行此操作的预定义函数 我在这里写的对吗 ;myReverse (define (myReverse list) (if (null? list) '() (append (myReverse(cdr list)) car list))) 谢谢 好吧,使用list作为名称会很奇怪,因为Scheme是一个Lisp-1。改称它为lst 考虑一下你
;myReverse
(define (myReverse list)
(if (null? list) '()
(append (myReverse(cdr list)) car list)))
谢谢 好吧,使用
list
作为名称会很奇怪,因为Scheme是一个Lisp-1。改称它为lst
考虑一下你可以用foldl
、cons
、()
和lst
做些什么
我在这里写的对吗
;myReverse
(define (myReverse list)
(if (null? list) '()
(append (myReverse(cdr list)) car list)))
对。需要考虑的一些事项:
是一个内置函数名,您可能真的想在这个解决方案中使用它,所以您可能不应该这样命名您的函数名list
- 您忘记了
车辆列表
需要两个列表;你正在给它传递一个列表和一个数字append
> (append '(1) 2) (1 . 2) > (append '(1) '(2)) (1 2)