でしょう.result = pop.inquire(P1, P2, .. , Pn) while result <> None: print result result = pop.inquire_next()
なお,変数は束縛されていないことがあります.
この場合は,Variableインスタンスが返されますが,その名前は,辞書内で一意になるようにPoPが発行した文字列になっています.
質問に含まれる変数名ではありませんので,注意してください.
返された変数値をPythonプログラムで処理するためには,以下のようにします.
まず,プログラム上明らかな場合以外は,インスタンスの型を知る必要があります.
このために,すべてのPoPオブジェクトにtypeメソッドが提供されています.
x1 = result['x1']typeメソッドが返す値は文字列で,PoPモジュールの中に次のように定義されています.
x1_type = x1.type()
オブジェクトの型がわかったら,それに応じてメソッドを呼び出し,得られた値を使って目的の処理をします. 例えば,変数xに数のリストが返されることがわかっていて,個々の値に対して関数呼出しをしたいのであれば,TYPE_nil = 'nil' TYPE_integer = 'integer' TYPE_float = 'float' TYPE_string = 'string' TYPE_atom = 'atom' TYPE_list = 'list' TYPE_clause = 'clause' TYPE_variable = 'variable'
のようになります.y = result['x'] while y.type <> TYPE_nil: print f(y.item().value()) y = y.next()