【问题标题】:Prolog - Need information on factsProlog - 需要有关事实的信息
【发布时间】:2014-02-03 22:12:24
【问题描述】:

假设我有一个事实,例如:

bigger(cat,mouse).

如果我想向某人描述这一点,我是否正确地说“猫是这个事实中的第一个词,鼠标是第二个词”,或者我是否将猫和老鼠称为原子并说“猫是事实中的第一个原子,而鼠标是第二个”。

【问题讨论】:

    标签: prolog fact


    【解决方案1】:

    您的第一个描述是公平的,“术语”是一种递归数据结构:即术语是原子、数字或结构,其中结构是“名称(arg1,arg2,...)”,每个参数都是一个术语。

    所以你的第二个描述更准确(受限)。

    正如其他答案所述,“参数”是结构化术语中位置标识属性的通常命名。

    【讨论】:

      【解决方案2】:

      argument 是我认为的完美词。但通常要描述一个谓词,你会使用以下形式:

      predicate/arity : predicate(arguments...)
      description of arguments
      

      这里会是这样的:

      bigger/2 : bigger(Bigger, Lesser)
      Holds if Bigger is bigger than Lesser.
      

      此外,您可以精确地确定参数的模式:+ 表示输入,- 表示输出,?对于两者(以及 @ 纯输入),请参阅 @false 在 this question 上的回答,以获取有关模式的更多信息(如果需要)。

      这里的完整版本可能是:

      bigger/2 : bigger(?Bigger, ?Lesser)
      Holds if Bigger is bigger than Lesser.
      

      【讨论】:

        【解决方案3】:

        为了稍微混淆一下,我可能会说biggercatmouse 之间的二元关系。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2023-03-14
          • 2014-11-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-04-15
          • 1970-01-01
          相关资源
          最近更新 更多