高校時代から Prolog に触れていなかったので、情報を探してみましたが、役に立ちませんでした。以下は、私の問題を説明する必要がある例です。
%% everybody():- [dana, cody, bess, abby].
%% Everybody = [dana, cody, bess, abby].
likes(dana, cody).
hates(bess, dana).
hates(cody, abby).
hates(X, Y):- \+ likes(X, Y).
likes_somebody(_, []):- fail.
likes_somebody(X, [girl | others]):-
likes(X, girl) ; likes_somebody(X, others).
likes_everybody(_, []):- true.
likes_everybody(X, [girl | others]):-
likes(X, girl) , likes_everybody(X, others).
maplist(likes_somebody, [dana, cody, bess, abby], [dana, cody, bess, abby]).
everybody
女の子のリストであることを宣言するにはどうすればよいですか? コメント行は私が試したものですが、奇妙なエラー メッセージが返されます。
これは、これまで多かれ少なかれ従ったチュートリアルです。違いがあれば、GPrologを使用しています。このような基本的な質問で申し訳ありません。GProlog のマニュアルは言語構文を扱っていませんが、確かに見ました。余談ですが、(実装のドキュメントではなく) 言語のドキュメントをどこで探すべきかについての情報をいただければ幸いです。