2012-04-26 26 views
1

订购取决于要素的顺序列表,我有一个列表CLISP:在另一个

(SetQ L '(1 j 3 k 4 h 5 n 6 w)) 

我要做一个功能令,有一个清单,“N”在进入原子,它必须检查该列表中的每个原子被包含在列表L和命令他们根据在列表L中指定的顺序,如果原子不在列表L,那么结果将显示

(Defun Order lst) 

(SetQ L2'(w o 5 j 3)) 

的一部分,我想要验证这:

(Order L2) 

结果应该返回:

+1

这应该被标记为“家庭作业”?另外,你有什么尝试? – Inaimathi 2012-04-26 13:48:01

回答

3

提示:

早些时候,你问这个问题:

CLISP : Check if two elements are in order one after another in a list

,因为它可以被用作该功能相关的问题在调用标准Lisp函数sort时的比较函数。

Lisp函数intersection可以生成一个列表,其中只包含出现在另一个列表中的那些元素。这是一个设置操作,所以它可以压缩重复;另一种方法是使用remove-if-not,其中测试谓词是一个lambda函数,它使用member来表达“删除不是该列表的所有元素”的想法。