Пролог добавить в список, если элемент не равен строке
Я пытаюсь создать список пар, которые имеют ненулевой элемент Guard.
get_only_guarded(L) :-
Guard \= null,
findall([S,D],transition(S,D,_,Guard,_),L).
Это то, что я пытался, но это не похоже на работу. Какой будет правильный путь?
2 ответа
Использование dif(Guard,null)
вместо. Справиться (\=)/2
с осторожностью!
Более "обычный" способ сделать это: протолкнуть тест после создания экземпляра
get_only_guarded(L) :-
findall([S,D], (transition(S,D,_,Guard,_),Guard \= null), L).