我在lisp编程中很新,所以也许这是一个愚蠢的问题,但无论如何,我有一个数字列表(6000 6100 6200 6200 7200等),我想查找和替换第二个相同的值(将1200加到第二个相同的值),所以结果应该是(6000 6100 6200 7400 7200)。你能帮助我吗?非常感谢你。common lisp - 在列表中替换相同的值
回答
老实说,我不明白为什么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)
这不会找到第二个相同的值。 *查找*通常意味着搜索操作, –
您的代码也会执行多项更改。这个问题谈到“第二个同样的价值”,这是单数。它并没有说'every'。 –
你的。代码也可能会取代第三个相同的值。 –
- 1. 转换字符串列表Common Lisp中
- 2. 子列表Common Lisp中
- 3. Common Lisp的 - 在列表列出
- 4. 在Common Lisp中转置列表
- 5. 传递函数列表中的Common Lisp
- 6. Common Lisp替代使用类
- 7. 替换正则表达式,就地,与Common Lisp的
- 8. Common Lisp中,列表处理(追加等)
- 9. Step Eval Common Lisp
- 10. Common Lisp a Lisp-n?
- 11. common lisp和emacs
- 12. 调用的函数Common Lisp的列表
- 13. 与Common Lisp中
- 14. Common Lisp中
- 15. 的#ifndef Common Lisp中
- 16. Common Lisp Binary Tree
- 17. 如何在Common Lisp中打印列表为矩阵列表
- 18. Common Lisp弱引用?
- 19. Common Lisp SublimeREPL
- 20. Common Lisp:列表和数组之间的转换
- 21. Common Lisp Loop Trouble
- 22. LISP中的关联列表与C#中的Dictionary相同吗?
- 23. “unfold”for common lisp?
- 24. 规则Common Lisp中
- 25. 如果Common Lisp中
- 26. 关于Common Lisp中
- 27. 在Common Lisp中编写++宏
- 28. Common Lisp的,参考值和实际值
- 29. Common Lisp Timer
- 30. Common Lisp流?
那你试试这么远吗? –
- 试图用一个原始列表和一个移动列表构造一个循环,而不是一些使用lambda获得t/nil模式的mapcar,但是 - 没有达到工作结果。 – user7980164
向我们显示您的代码,并从那里我们可能能够指出你在正确的方向 – sorifiend