小编Pro*_*ple的帖子

Prolog 符号 :- 是否表示暗示、蕴含或证明?

在 Prolog 中我们可以编写非常简单的程序,如下所示:

\n
mammal(dog).\nmammal(cat).\n\nanimal(X) :- mammal(X).\n
Run Code Online (Sandbox Code Playgroud)\n

最后一行使用的符号:-非正式地让我们将最终事实解读为:如果X 是哺乳动物,那么它也是动物。

\n

我开始学习 Prolog 并试图确定符号表示以下哪一个:-

\n
    \n
  • 意味着 (\xe2\x87\x92)
  • \n
  • 包含 (\xe2\x8a\xa8)
  • \n
  • 可证明 (\xe2\x8a\xa2)
  • \n
\n

另外,我不太清楚这三者之间的区别。我正在尝试阅读这样的线程,但讨论的水平超出了我的能力,https://math.stackexchange.com/questions/286077/implies-rightarrow-vs-entails-models-vs-provable-vdash

\n

我的想法:

\n
    \n
  • Prolog 通过模式匹配符号(统一和搜索)来工作,因此我们可能会想说该符号:-意味着“语法蕴涵”。然而,这只适用于作为该语法过程的结果而被证明为真的查询。
  • \n
  • 该符号:-用于创建事实数据库,因此本质上是语义的。这意味着它可能是 Implies (\xe2\x87\x92) 或 Entails (\xe2\x8a\xa8) 之一,但我不知道是哪一个。
  • \n
\n

logic prolog

6
推荐指数
1
解决办法
304
查看次数

为什么 prolog 使用 =< 而不是 <=?

Prolog 中的数字比较运算符与其他语言几乎相同。

操作员 意义
X > Y X 大于 Y
X < Y X 小于 Y
X >= Y X 大于或等于 Y
X =< Y( 不是<= X 小于或等于 Y

问题:为什么 prolog 与大多数其他语言不同并且使用=<and not <=

原因是由于此类符号是如何手写的,因此经常引用从右到左:-的含义含义的解释。<-


更新 - 编辑以纠正拼写错误

prolog iso-prolog

3
推荐指数
1
解决办法
144
查看次数

标签 统计

prolog ×2

iso-prolog ×1

logic ×1