0
對於以下SWI-Prolog程序,我想創建一個謂詞,它返回除一個值外的所有值。
例如,返回除ahmed之外的所有男性。
我該怎麼做?SWI-Prolog:返回除一個以外的所有值
male(ahmed).
male(mohamed).
male(ali).
male(samir).
male(khalid).
對於以下SWI-Prolog程序,我想創建一個謂詞,它返回除一個值外的所有值。
例如,返回除ahmed之外的所有男性。
我該怎麼做?SWI-Prolog:返回除一個以外的所有值
male(ahmed).
male(mohamed).
male(ali).
male(samir).
male(khalid).
不確定要理解。
你想要一個謂詞來返回一個(不是艾哈邁德)男性的單一名稱,並通過回溯,另一個名稱和另一個名稱回憶它,...?
我想,你可以簡單地寫
noAhmed(M) :-
male(M),
M \= ahmed.
或你想返回一個列表的所有(無艾哈邁德)的男性名字謂語?
在這種情況下,你可以寫
noAhmedList(L) :-
findall(M, (male(M), M \= ahmed), L).
謝謝。我需要的不是艾哈邁德。 –
' - 男性(P),P \ = ahmed.' – CapelliC
@CapelliC,哦,請:'DIF(P,艾哈邁德),男(P) ' – false