大家好!
所以我对lisp还比较陌生,我对lisp中的列表只了解一点点,但我需要通过while循环创建一个列表。我的问题是,每次我想添加到列表时都使用相同的变量,这导致列表永远不会大于一。我猜这是指针问题,我想知道什么是变通方法。以下是一些示例代码:
-
- (defun listcopy (list1)
- (setq index1 0)
- (setq listlength 10)
- (setq newlist '())
- (while (< index1 listlength)
- (setq current (nth index1 list1))
- (setq newcurrent (substr current 5))
- (insertnth newcurrent index1 newlist)
- (1+ index1)
- );end while
- );end function
- (defun insertnth (element num list1)
- (if (and list1 (< 0 num))
- (cons (car list1) (insertnth element (1- num) (cdr list1)))
- (cons element list1)
- );end if
- );end function
这是代码的简化版本:我实际上做的不仅仅是去掉字符串的前5个字母,但这是一个很好的例子。谢谢你的帮助! |