1
ass(a).
ass(b).
ass(c).
con(c,r).
arg(A, L) :- forall(member(S, L), (ass(S), \+ con(S,A))).
的如果我運行arg(r, [a,b])
它會工作,但如果我跑arg(r,X)
返回:ERROR出全球棧。我希望它返回[a,b]
。我明白這是因爲L
是無限的,但我該如何解決這個問題。Prolog的錯誤了全球棧
如果你解釋了'arg'謂詞的意義,這將有助於。 – lurker
@mbratch是的,你是對的!我需要找到所有的原子是屁股()並且與A相反。 – user1855165
@mbratch:你爲什麼再添加標籤swi-prolog。在這個問題上沒有什麼特別的SWI ...... – false