【发布时间】:2012-04-12 13:06:13
【问题描述】:
我只需要从列表中返回那些奇数的值,因此我尝试使用 car 和 cdr 函数打破我的列表。我有一个递归函数调用,它检查 Car 是否返回一个列表,然后使用 car 和 cdr 进一步打破它,否则只需将第一个元素传递给函数调用,检查是否为奇数。
特例 (10 11 (12 13)) 的问题在于 汽车返回 10 cdr 返回 (11 (12 13))
然后在第二次迭代中 回车 (11 (12 13)) cdr 返回 (11 (12 13))
所以我怎样才能使用 car 和 cdr 进一步打破我的清单。我需要在最终答案中保留括号,并且只返回具有奇数整数值的列表。
【问题讨论】:
-
我很困惑,
(11 (12 13))的car是11。看起来您的程序中存在某种逻辑错误,因为在较高级别上,您描述的方法听起来像是可行的,只要您在遇到诸如((12 13))之类的列表时小心递归。
标签: list functional-programming scheme