删除列表中的未分配成员

时间:2013-12-26 08:26:26

标签: prolog

我写了一个代码,得到一些特定的输出(2 List),它的工作,给我我需要的东西,但是在两个列表中有未分配的元素,如下图所示,所以我的问题是:如何删除未分配的元素。

 Courses = [_G1619, linear, _G1607, physics2, physics1, calculas1|_G1590],
Marks = [_G1622, 78, _G1610, 90, 80, 78|_G1593] 

1 个答案:

答案 0 :(得分:1)

在SWI-Prolog中有一些列表处理实用程序,如exclude / 3,它们允许指定要在每个元素上使用的谓词。 var / 1似乎合适。例如

2 ?- exclude(var,[1,A,B,2,3|L],R).
L = [],
R = [1, 2, 3] ;
...

(注意:在通话后放下一个切口以消除不确定性)。

我很惊讶地发现它也删除了无界的尾巴 - 我认为它需要一个合适的清单。那么它应该符合你的要求。