我想比较SWI-Prolog中的两个术语:
np(np(DetBaum,NBaum),Morph1)->det(DetBaum,Morph1),n(NBaum,Morph2),Morph1=Morph2.
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
ERROR: Undefined procedure: (=)/4
ERROR: However, there are definitions for:
ERROR: (=)/2
Run Code Online (Sandbox Code Playgroud)
我认为Morph1和Morph2是两个术语,而不是四个.我错了吗?
除了保罗所说的,我想提一下,(=)/2在这里使用是没有必要的.毕竟,如果术语相同,那么您可以简单地使用相同的变量来表示它们.
所以,你的整个规则可以写成:
np(np(DetBaum,NBaum), Morph) -->
det(DetBaum, Morph),
n(NBaum, Morph).