1

我正在尝试创建一个具有非空 Guard 元素的对列表。

get_only_guarded(L) :-
    Guard \= null,
    findall([S,D],transition(S,D,_,Guard,_),L).

这是我尝试过的,但似乎不起作用。正确的方法是什么?

4

2 回答 2

3

改为使用dif(Guard,null)。小心处理(\=)/2

于 2015-03-28T17:30:38.130 回答
2

一种更“传统”的方法:在实例化后推送测试

get_only_guarded(L) :-
    findall([S,D], (transition(S,D,_,Guard,_),Guard \= null), L).
于 2015-03-28T18:10:41.053 回答