2017-02-16 11 views
0

次のSWI-Prologプログラムでは、1つを除くすべての値を返す述部を作成します。
たとえば、ahmed以外のすべての男性を返す
どうすればいいですか?SWI-Prolog:1以外のすべての値を返します

male(ahmed). 
male(mohamed). 
male(ali). 
male(samir). 
male(khalid). 
+2

を書くことができます - 男性(P)、P \ = ahmed.' – CapelliC

+1

@CapelliC、ああしてください:?' DIF(P、アーメド)、男性(P) ' – false

答えて

1

わかりません。

(Ahmedの)男性の単一の名前を返し、それをバックラッチング、別の名前、別の名前でリコールする述語が必要ですか?

私はあなたが単に

noAhmed(M) :- 
    male(M), 
    M \= ahmed. 

それとも、すべての(なしアーメド)男性の名前でリストを返す述語をしたいですかを書くことができると仮定?この場合

、あなたは `

noAhmedList(L) :- 
    findall(M, (male(M), M \= ahmed), L). 
+0

ありがとう。私が必要とするものはnoAhmedです。 –

関連する問題