我一直在到处寻找 Lisp 中的以下功能,但一无所获:
在列表中找到某物的索引。例子:
(index-of item InThisList)
替换列表中特定位置的内容。例子:
(replace item InThisList AtThisIndex) ;i think this can be done with 'setf'?
返回特定索引处的项目。例子:
(return InThisList ItemAtThisIndex)
到目前为止,我一直在用我自己的函数来伪装它。我想知道我是否只是在为自己创造更多的工作。
这就是我一直在伪造数字 1 的方式:
(defun my-index (findMe mylist)
(let ((counter 0) (found 1))
(dolist (item mylist)
(cond
((eq item findMe) ;this works because 'eq' checks place in memory,
;and as long as 'findMe' was from the original list, this will work.
(setq found nil)
(found (incf counter))))
counter))