我试图完成这个练习;Lisp练习涉及列表操作
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和任何帮助将不胜感激,在此先感谢。