这比标题所暗示的要复杂得多,但我无法将它压缩成一句话。清除列表中的任何重复列表。 Lisp
我正在使用Clisp,目前有一个列表清单。外部列表是任意长的,而内部列表是4个整数长。这是我可能拥有的一个例子。
((2 1 1 0) (1 1 0 0) (1 0 0 1) (1 1 0 0) (1 0 1 0) (1 0 0 0))
现在每个内部列表由两部分组成,第一项是'乘数'。最后3项只是列表中的值。所以从某种意义上说,(10 1 1 0)与(5 1 1 0)(5 1 1 0)相同。
我需要一个可以压缩这个列表的函数,以便没有2个列表包含相同的最后3个项目。但是每个唯一的最后3个项目只有一个列表,并且第一个空间中的值是该列表的“多少”。如果是有道理的......
所以这
((2 1 1 0) (1 1 0 0) (1 0 0 1) (1 1 0 0) (1 0 1 0) (1 0 0 0))
; ^ ^
将成为这个
((2 1 1 0) (2 1 0 0) (1 0 0 1) (1 0 1 0) (1 0 0 0))
; ^
我在什么方向借此大气压的损失。并希望我如何能够最好地解决这个
的Common Lisp或计划? – uselpa 2014-12-02 17:41:53
我会做的第一件事:用英文写一个版本。当你看起来很好,围绕它添加括号并使其工作... Stackoverflow是针对实际的编程问题(最好的代码和问题描述),而不是寻找设计和实现你的算法的人... – 2014-12-02 17:45:03
@LePetitPrince Clisp – sam 2014-12-02 17:53:34