私はこの演習を完了しようとしています。
Write a Lisp function that takes as input a list of elements, such as (A B C)
、および(A 1 B 2 C 3)のように、各要素の位置がそれに続くリストを返します。
2つの関数でそれを実行しようとしていますが、正しく機能していません。同じリストを取得しているだけです。これが私のコードです:
(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です。よろしくお願いします。よろしくお願いします。