鉴于这个程序,为什么我必须在谓词中定义每个原子,即使它们是匿名的。为什么 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 个变量定义一个字典,这是一个巨大的障碍。如果我被迫定义每个变量(匿名与否),它将使我的程序大小增加一个数量级。