|
|
1
1
为了帮助理解人类可读的含义,可以添加一个额外的谓词,将参数记录为可读的名称/值对:
上面,后缀*ancestor_of*表示参数1是参数2的祖先,因此仔细命名谓词可以使其更清晰。 通常(惯例),输入参数是较早的参数,输出参数是较晚的参数,但如果谓词“双向工作”,即可以是输入或输出,则该规则无法成立。谓词的情况如下:
任何一个参数都可以是输入或输出,因此不需要对它们进行编码/解释,尽管您可能希望说明这两种方式都有效。 我通常会通过在谓词旁边的注释中放置上述两种用法的示例来注释这些“灵活”谓词。 对于入口点标签,只需执行以下一项或多项操作:
编辑:额外内容:编码指南/其他答案。
在该文档中,还可以查看:
“?”用于识别将要提及的参数类型的系统见第21页。 |
|
2
1
有用的 习俗 ,例如由赞助 Markus Triska ,通过连接参数“name”来构建谓词函子-在广泛适用的意义上。你的例子可能是
同样,ISO Prolog,以及例如SWI Prolog库,也试图遵循这一策略。 例如
WRT声明 类型 和 地位 对于参数,一些Prolog提供声明-例如Turbo Prolog、ECLiPSe等。。。有时需要这样的声明——通常是为了检查正确性,通常是为了加快计算速度。 SWIProlog提供了“简单”的结构化注释,IDE自动处理 contribution 旨在通过运行时检查利用此类声明。 |
|
3
1
是的,带有注释和/或有意义的参数名称,
我认为,《Prolog的艺术》中提倡的惯例是,将谓词的名称放在其第一个参数之后,以获得预期的参数顺序:
|