【发布时间】:2014-06-19 17:24:06
【问题描述】:
我编写了这个简单的buildPairs 函数,它应该接受一个列表和“某物”并返回一个对列表,其中每一对由列表中的一个元素和“某物”参数组成。
4(defun buildPairs(aList rightChild)
5 "returns a list of pairs"
6 (setq ret (list (cons (car aList)
7 rightChild)))
8 (setq newList (cdr aList))
9 (while newList
10 (print (car newList))
11 (setq ret (append ret
12 (list(cons (car newList)
13 rightChild))))
14
15 (setq newList (cdr newList)))
16
17 ret)
18
19(setq listA '("a1", "a2", "a3"))
20
21
22(length (buildPairs listA "foo"))
我希望22 行返回 3。
但由于某种原因,它返回 5,我不知道它为什么这样做。
它返回的列表是 (("a1" . "foo") (\, . "foo") ("a2" . "foo") (\, . "foo") ("a3" . "foo")) ,这很奇怪。
谁能解释一下我做错了什么?
【问题讨论】: