我刚从Prolog开始上课,所以这是非常基础的。我只是怀疑Prolog没有任何可以直接使用的内置函数,或者我们是否应该首先编写一组事实和规则然后再使用它们?我试图运行这个功能:
- ?转置([[1,2,3],[4,5,6],[7,8,9]],Ts)的
这给了我这个错误:
错误:未定义的程序:转置/ 2(DWIM无法纠正目标)
所以,基本上,我的问题是,我是否需要编写转置如何工作?我认为它是一个可以使用的内置函数。
P.S。:我正在使用:SWI-Prolog(线程,64位,版本7.6.0-rc1)
答案 0 :(得分:2)
当然它有很多内置谓词(在http://www.swi-prolog.org/pldoc/man?section=builtin中列出),但transpose
不是其中之一。如果它是“我的一个课程所以它非常基础”,很可能你自己写transpose
,特别是如果它是你的第一个Prolog课程。
clfpd
库中 一个,请参阅How to use predicate transpose in SWI-Prolog?。