我试图完成这个练习;
Write a Lisp function that takes as input a list of elements, such as (A B C)
,并返回一个列表,其中每个元素的位置都跟在它后面,例如 (A 1 B 2 C 3)
我试图用两个函数来做,但是它不能正常工作,我只是得到相同的列表。这是我的代码:
(defun insert (index var userList)
(if (or (eql userList nil) (eql index 1))
(cons var userList)
(cons (car userList) (insert (- index 1) var (cdr userList)))))
(defun insertIndex (userList)
(setq len (length userList))
(loop for x from 1 to len
do (insert x x userList)))
插入函数本身似乎可以正常工作,但似乎它对循环没有任何作用。我是新的 lisp,任何帮助将不胜感激,在此先感谢。