我試圖完成這個練習;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和任何幫助將不勝感激,在此先感謝。