我在lisp编程方面相当新,所以这可能是一个愚蠢的问题,但无论如何我有一个数字列表,如(6000 6100 6200 6200 7200等),我想找到并替换第二个相同的值(添加1200到第二个相同的值)所以结果应该是(6000 6100 6200 7400 7200)。你能帮帮我吗?非常感谢你。
答案 0 :(得分:-1)
老实说,我不明白为什么falk会回避这个问题。虽然这不是一个有趣的问题,但它是一个明确的问题。对于那里的学生,让我概括一下,试图让它变得更有趣。我是lisp的新手,我需要将一个函数应用于列表。函数的输出不仅取决于当前元素,还取决于前面和/或后面的元素,使用的最佳构造是什么?
我认为最简单的方法是使用loop
:
(defun nahrad (list change)
(loop for f = nil then s
for s in list
collect (if (eql f s) (+ change s) s)))
(defparameter *test* '(6000 6100 6200 6200 7200))
(nahrad *test* 1200)