展开讨论

经验与复盘经验摘录 · 机器翻译

当我进入大学攻读学士学位时,我28岁了,已经工作了5到6年……

当我进入大学攻读学士学位时,我28岁了,已经工作了5到6年,作为一名自学的程序员在业界工作。第一学期,我们有一门逻辑编程课程,这门课完全用Prolog来教。一开始,我感到非常不知所措。这与我之前做过的任何事情都截然不同,我不得不放弃很多自己习惯的常规编程方式。这门课结束时,我成了它的信徒!这也让我对函数式编程和一般的数学/逻辑思维打开了思路。我仍然认为Prolog应该成为每个程序员的必修课。它以如此逻辑化的方式打开思维……我爱它。不幸的是,从那以后的11年里,我从未在职业实践中找到使用它的机会。或者,也许我只是错过了这些机会?

源讨论Learn Prolog Now (2006)原帖 242 条评论 · 导入时统计
2

这条内容在回应什么?

父级讨论 · 节选

UX

Prolog真的是一种非常了不起的系统,如果我能证明使用它的合理性,我不会犹豫。大多数时候,我会把我认为强大的语言称为“强大工具”,但这里不适用。Prolog远不止是一个强大工具。它是某个被遗忘的年代中最杰出的头脑们所打造的一次性实验性技术。你只能在一座死城的辐射废墟深处,一个容易被忽视的地下掩体内找到它。它是一台超级计算机,其REPL的光标在单色荧光屏上闪烁。它静静地在那里,被遗忘着,忠实地等待着你插入接口。

完整原文

社区评论 0

还没有社区评论,来聊聊你的看法。

原讨论中的回复 2

仅展示本次导入中包含的直接回复。中文为机器翻译,可查看英文原文。

UX

他们教过你如何使用DCGs吗?几个月前,我曾使用EDCGs作为一部分去芜存菁和修复错误的工程,以处理一个非常糟糕的10k行的sepples编译单元,并为其中的不同部分生成标签。最终得到了几千个基础术语,例如: tag(TypeOfTag, ParentFunction, Line). 标签类型表示诸如不必要的函数调用、不地道的条件判断等信息。 然后我用REPL来拆解这些东西,写了些手动笔记,再参考我的完整知识库来制定行动计划。这完全是经典的专家系统方法。我原本预计修复错误需要几个月。结果用了10天的Prolog代码 + 2天的Prolog交互 + 3天的sepples清理和调整插线板上的剩余部分。

完整原文
HU

Prolog是一门很好的语言,值得学习。但我不希望用它来做超出它直接擅长的事情。尤其是cut操作符,那真是让人头大。但一旦你掌握了它,一切都会变得流畅。不过我怀疑超过1%的开发者能真正掌握它,即使是在无限的时间内。它比任何其他非研究类的开发工作都要难得多。

完整原文
在 Hacker News 阅读

尊重不同观点,分享具体经验。

登录后即可发帖、评论、转发和引用。