をPrologの初心者として、私はPrologで可換的な表現が直感的ではないことを発見しました。Prologで "Commutativity"を表現する代わりに?
family(X,Y) :-
married(X,Y);
relative(X,Y);
father_son(X,Y).
は、私もそれを「可換」にするために、定義に以下を追加する必要があります:私はXとYを表現したい場合など
は次のように、一つの家族である
married(Y,X);
relative(Y,X);
father_son(Y,X).
しかし、我々は、エレガントなコードを書きたいので、我々は、プロローグを使用して...ので、私は、元に(代わりに、上記の3つの)一つだけの行を追加したいと考えていたい:
family(Y,X).
ここはPOINTです。それは終わりにつながる!なぜプロローグは「論理的」ではないのですか?終わりに至らないこの素敵な1行の表現に代わる方法がありますか?
素敵な週末! ワット
私はこれを見て、それがなぜ終わりを出すのかも明らかです。ありがとう! – Matt
私はまた、別の事実を使用することをお勧めします。 –
@AlexanderSerebrenik絶対に - 私はオリジナルのスタイルに近づきたいと思っていました。しかし、私のPrologの時代には、読みやすさとデバッグのしやすさのために ';'よりも複数のルールが好まれていました。 – dasblinkenlight