Prolog错误:未定义的程序:转置/ 2(DWIM无法纠正目标)

时间:2017-09-30 17:39:22

标签: prolog

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

- ?转置([[1,2,3],[4,5,6],[7,8,9]],Ts)的

这给了我这个错误:

错误:未定义的程序:转置/ 2(DWIM无法纠正目标)

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

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

1 个答案:

答案 0 :(得分:2)

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

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