【问题标题】:Prolog ERROR: Undefined procedure: transpose/2 (DWIM could not correct goal)Prolog 错误:未定义的过程:转置/2(DWIM 无法纠正目标)
【发布时间】:2023-03-25 02:02:01
【问题描述】:

我刚刚开始为我的一门课程使用 Prolog,所以它非常基础。我只是怀疑 Prolog 是否没有任何可以直接使用的内置函数,或者我们是否应该始终先编写一组事实和规则,然后再使用它们?我试图运行这个函数:

?-transpose([[1,2,3],[4,5,6],[7,8,9]],Ts)。

这给了我这个错误:

错误:未定义过程:transpose/2(DWIM 无法更正目标)

所以,基本上,我的问题是,我是否需要编写转置的工作方式?我认为这是一个可以使用的内置函数。

P.S.:我正在使用:SWI-Prolog(线程,64 位,版本 7.6.0-rc1)

【问题讨论】:

    标签: prolog


    【解决方案1】:

    当然它有很多内置谓词(列在http://www.swi-prolog.org/pldoc/man?section=builtin 中)但transpose 不是其中之一。如果它是“我的一个课程,所以它很基础”,很可能你应该自己写transpose,特别是如果这是你的第一个 Prolog 课程。

    clfpd 库中有一个,请参阅How to use predicate transpose in SWI-Prolog?

    【讨论】:

      猜你喜欢
      • 2017-08-19
      • 1970-01-01
      • 2015-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多