【问题标题】:SWI Prolog: How to view a pre-built predicate code?SWI Prolog:如何查看预先构建的谓词代码?
【发布时间】:2015-03-01 22:32:31
【问题描述】:

我很感兴趣一些谓词是如何构建的,比如downcase_atom/2。有没有办法查看谓词代码?

【问题讨论】:

  • 所有 SWI Prolog 源代码都可以从 their website 获得。只需检查下载链接。

标签: prolog predicate swi-prolog


【解决方案1】:

您可以从查看谓词属性开始:

?- predicate_property(downcase_atom(_,_), P).
P = visible ;
P = built_in ;
P = foreign ;
P = imported_from(system) ;
P = nodebug ;
false.

这告诉您谓词是从system 模块导入的。如果您查看此模块属性:

?- module_property(system, P).
P = class(system) ;
P = exports([]) ;
P = program_size(113424) ;
false.

您将看到没有与该模块关联的任何源文件。因此,在这种情况下,您需要查看 SWI-Prolog 本身的来源。您会发现谓词是在文件src/os/pl-ctype.c 中用C 代码定义的。在其他情况下,系统谓词可能会在 Prolog 代码中定义,在这种情况下,上述步骤可能会为您提供定义它们的源文件的名称和位置。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-21
  • 2012-04-06
  • 1970-01-01
  • 1970-01-01
  • 2011-11-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多