我对如何构建一些谓词如downcase_atom/2
感兴趣。有没有办法查看谓词代码?
答案 0 :(得分:6)
您可以从查看谓词属性开始:
?- 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代码中定义系统谓词,在这种情况下,上述步骤可以为您提供定义它们的源文件的名称和位置。