?- P1, P1, .. , Pn.は,PoPインスタンスに対して
result = pop.inquire(P1, P2, .. , Pn)あるいは,
result = pop.inquire(cond=(P1, P2, .. , Pn))と呼び出します. resultには,{変数名:値}の形式の辞書(dictionary)が返ります.
result = pop.inquire(cond=[P1, P2, .. , Pn])
一つの質問に対して,複数の解があることがあります.
inquireメソッドは,一つの解しか返しません.
さらに別の解を要求するには,
result = pop.inquire_next()と呼び出します.
したがって,質問を満たすすべての解を求めたい場合は,
というような呼出しをします.result = pop.inquire(P1, P2, .. , Pn) while result <> None: # process the result here result = pop.inquire_next()
while result:とすると,条件を満たして空の辞書が返されてもwhileループを抜けてしまいます. 必ず結果がNoneでないかどうか(result<>None)で判定してください.