【发布时间】:2014-11-03 00:39:06
【问题描述】:
定义函数'mapping',它有两个参数:一个简单的列表L,和一个整数值val。列表 L 的每个元素都是两个原子的列表——键和对象。该函数返回一个 key 小于 val 的对象列表。
示例: (映射'((12 k) (7 n) (23 r) (9 p)) 13) --> (k n p)
到目前为止我的代码:
(defun mapping (list val)
(if (consp list) ;;if list is not empty
(if (> val (caar list)) ;; check the first value in the first nested list
(cons (car(cdr list)));;if value is greater add that value to the return list
(mapping (cdr list) val)))) ;; recurse thru the list
我的代码有语法错误,并且 cons 语句没有返回我期望的所有值的列表。
【问题讨论】:
-
由于这是一个作业,我没有给出完整的答案
(cons (car(cdr list)))-cons需要两个参数。你只给了一个。什么才是好的第二个论点? -
第二个参数应该是剩余的值小于val的键。
-
对。所以你需要做出改变……
标签: lisp