Haskell 里手写 Prolog,逻辑编程还有救吗
原创
用 Haskell 写一个 Prolog 解释器,这个想法乍一听就挺离谱——一个以惰性求值出名的函数式语言,去实现一个以回溯和统一为核心的逻辑语言。但我翻完代码之后,发现这不只是炫技。Prolog 的核心其实就一个统一算法加一坨回溯,而 Haskell 的类型系统和模式匹配天然贴合这些东西,写出来的解释器反而比用 Prolog 自己实现的还干净。更妙的是,纯函数式地处理状态和回溯,逼你把 Prolog 里那些"脏"的东西——变量绑定、选择点、切——全都显式地写出来。看完之后我有个判断:这种交叉实现不是玩具,它比任何 Prolog 教程都更让人理解逻辑编程到底在干嘛。下次有人再说"谁还会写 Prolog",我就甩这段代码过去。
原文:Prolog Interpreter in Haskell · 来源:Hacker News
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
itfan123



