このプログラムを考えると、匿名であっても、述語内のすべてのアトムを定義する必要があるのはなぜですか。dict述語の未定義変数が匿名と見なされないのはなぜですか?
funt2(X) :-
X = point{x:5, y:6}.
evalfunt(point{x:5, y : 6}) :-
write('hello world!').
evalfunt(point{x:_, y : _} ) :-
write('GoodBye world!').
なぜ私はただ言うことができない
evalfunt(point{x:5}) :-
write('GoodBye world!').
^ちなみに、それは一致しません。
辞書を使用するために辞書内のすべての可能な値を定義する必要がある場合は、構造を使用することもできます。
ここでの動機は何ですか?述語を簡潔にするために何かできることはありますか? 30 個の変数で dict を定義しようとしていますが、これは大きな障害です。各変数 (匿名かどうかに関係なく) を定義する必要がある場合、プログラムのサイズが大幅に増加します。