【发布时间】:2014-04-25 20:47:23
【问题描述】:
好的,我知道这是一个非常笼统的问题,并且已经写了一些关于这个主题的论文,但我感觉这些出版物涵盖了非常基本的材料,我正在寻找更先进的东西来改进风格和效率。这就是我在纸上的内容:
- “研究报告 AI-1989-08 Efficient Prolog:实用指南”,Michael A. Covington,1989 年
- Timo Knuutila 的“高效 Prolog 编程”,1992 年
- “Prolog 编码指南”,Covington、Bagnara、O'Keefe、Wielemaker,Price,2011 年
其中涵盖的示例主题:尾递归和差分列表、索引的正确使用、剪切的正确使用、避免断言和撤回、避免 CONSing、代码格式指南(缩进、if-then-elses 等)、命名约定、代码文档、参数顺序、测试。
根据您对 Prolog 的个人经验,您会在此处添加什么内容?是否有任何仅适用于 CLP 编程的特殊风格指南?您知道一些常见的效率问题并知道如何处理吗?
更新:
这里提出了一些有趣(但对我来说仍然太基本和太笼统)的观点:Prolog programming guidelines of Lifeware Team
为了突出整个问题,我想引用“Prolog 的编码指南”(Covington 等人):
据我们所知,从未发布过一套连贯且合理完整的 Prolog 编码指南。此外,当我们查看已发布的 Prolog 程序的语料库时,我们并没有看到事实上的标准出现。这种明显遗漏背后的最重要原因是,由于缺乏全面的语言标准,小型 Prolog 社区进一步分裂为以单个 Prolog 系统为中心的子社区,其中没有一个具有主导地位。
【问题讨论】:
-
必读的书是 Richard O'Keefe 的“The Craft of Prolog”。
-
这句话来自一组已发布的 Prolog 编码指南……
-
@DanielLyons,我不明白你的评论是什么意思。我正是从引用这句话的地方写的。
-
@GrzegorzAdamKowalski 我认为 Daniel 可能在指出这句话的自我指涉讽刺。
-
这个问题被一些人搁置为题外话,因为这样的问题“往往会吸引固执己见的答案和垃圾邮件”。好吧,我的目的是吸引自以为是的答案。我应该将此问题移至其他 Stack Exchange Q&A 网站吗?
标签: prolog iso-prolog