在 Prolog 中我们可以编写非常简单的程序,如下所示:
\nmammal(dog).\nmammal(cat).\n\nanimal(X) :- mammal(X).\n
Run Code Online (Sandbox Code Playgroud)\n最后一行使用的符号:-
非正式地让我们将最终事实解读为:如果X 是哺乳动物,那么它也是动物。
我开始学习 Prolog 并试图确定符号表示以下哪一个:-
另外,我不太清楚这三者之间的区别。我正在尝试阅读这样的线程,但讨论的水平超出了我的能力,https://math.stackexchange.com/questions/286077/implies-rightarrow-vs-entails-models-vs-provable-vdash。
\n我的想法:
\n:-
意味着“语法蕴涵”。然而,这只适用于作为该语法过程的结果而被证明为真的查询。:-
用于创建事实数据库,因此本质上是语义的。这意味着它可能是 Implies (\xe2\x87\x92) 或 Entails (\xe2\x8a\xa8) 之一,但我不知道是哪一个。Prolog 中的数字比较运算符与其他语言几乎相同。
操作员 | 意义 |
---|---|
X > Y |
X 大于 Y |
X < Y |
X 小于 Y |
X >= Y |
X 大于或等于 Y |
X =< Y ( 不是<= ) |
X 小于或等于 Y |
问题:为什么 prolog 与大多数其他语言不同并且使用=<
and not <=
?
原因是由于此类符号是如何手写的,因此经常引用从右到左:-
的含义含义的解释。<-
更新 - 编辑以纠正拼写错误