试图反转Scheme中的列表

预先警告:这是一个家庭作业问题。我正在尝试编写一个反转列表的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
。 想想你可以用
foldl
cons
'()
lst
做些什么。     
  我在这里写的是正确的轨道吗? 是。有些事情需要考虑:
list
是一个内置的函数名,你可能真的想在这个解决方案中使用它,所以你可能不应该将你的正式命名为 你忘了
car list
周围的括号
append
期待两个名单;你传给它一个列表和一个数字
> (append '(1) 2)
(1 . 2)
> (append '(1) '(2))
(1 2)
    

要回复问题请先登录注册