【问题标题】:Trying to reverse a list in Scheme试图反转方案中的列表
【发布时间】:2011-04-12 03:23:27
【问题描述】:

预先警告:这是一个家庭作业问题。我正在尝试编写一个反转列表的方案函数。 '(1 2 3) 变为 '(3 2 1) 等。我不允许使用执行此操作的预定义函数。

我在这里写的内容是否正确?

;myReverse
(define (myReverse list)
    (if (null? list) '()
        (append (myReverse(cdr list)) car list)))

谢谢!

【问题讨论】:

标签: list recursion scheme reverse


【解决方案1】:

好吧,使用 list 作为名称会很奇怪,因为 Scheme 是一个 Lisp-1。改为lst

想想你可以用foldlcons'()lst 做什么。

【讨论】:

    【解决方案2】:

    我在这里写的内容是否正确?

    是的。需要考虑的一些事项:

    • list 是一个内置函数名称,您可能真的想在此解决方案中使用它,因此您可能不应该将正式名称命名为
    • 您忘记了car list 周围的括号
    • append 需要两个列表;你传递给它一个列表和一个数字

      > (append '(1) 2)
      (1 . 2)
      > (append '(1) '(2))
      (1 2)
      

    【讨论】:

      猜你喜欢
      • 2016-11-16
      • 1970-01-01
      • 1970-01-01
      • 2019-07-19
      • 2011-10-22
      • 2016-01-16
      • 1970-01-01
      • 2011-07-18
      • 1970-01-01
      相关资源
      最近更新 更多