作者: 藤岡和夫
日時: 2003/5/02(22:47)
ご無沙汰しています。

下記のようにサンプルを参考にPyLogモジュールを使用したスクリプトを書きま
した。意図どおりに動くのですが、入れ子になっている二つのforループの挙動
の違いがよくわかりません。解説お願いできますでしょうか。

http://christophe.delord.free.fr/en/pylog/prolog.html

from pylog import *

exec(compile(r"""
alias('コルメラワー', 'Alain Colmerauer').
creator('Alain Colmerauer', 'Prolog').

creator(X, Z) :-
    alias(X, Y),
    creator(Y, Z).
"""))

queries =    [
                creator('Alain Colmerauer', 'Prolog'),
                creator('コルメラワー', 'Prolog'),
                creator('コワルスキー', 'Prolog'),
            ]

for query in queries:
    print "?- %s." % query
    n=0
    for _ in query():
        print "\tyes: %s." % query
        n += 1
    if n==0:
        print "\tno"

藤岡 和夫
FGALTS@...
kazuf@...
TS Networkのために http://homepage1.nifty.com/kazuf/