【发布时间】:2015-03-01 22:32:31
【问题描述】:
我很感兴趣一些谓词是如何构建的,比如downcase_atom/2。有没有办法查看谓词代码?
【问题讨论】:
-
所有 SWI Prolog 源代码都可以从 their website 获得。只需检查下载链接。
标签: prolog predicate swi-prolog
我很感兴趣一些谓词是如何构建的,比如downcase_atom/2。有没有办法查看谓词代码?
【问题讨论】:
标签: prolog predicate swi-prolog
您可以从查看谓词属性开始:
?- 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 代码中定义,在这种情况下,上述步骤可能会为您提供定义它们的源文件的名称和位置。