我对 Prolog 中递归的工作原理有基本的了解。我发现很难用声明性范式思考。您能否推荐一些学习资源(带有已解决的示例)来编写递归谓词?
问问题
159 次
2 回答
3
我在这里对“ Prolog 编程 - 解决方案的路径”问题的回答列出了几个 [书] 资源。
当我学习 Prolog 时,我发现 Leon Sterling 和 Ehud Shapiro 的The Art of Prolog比其他有关该主题的书籍更有启发性
Richard O'Keefe 的The Craft of Prolog看起来也不错,但我不能说我看过它:
于 2014-04-17T23:39:03.110 回答
2
我认为 Prolog 在“基本”自然语言处理方面表现最好。的确,那是它的首要战场,很久以前。
('基本',因为 NLP 有很多复杂性,与任何实现的选择完全无关......)
但是 NLP 显示了递归对于实现很重要的两个领域(这是问题所固有的):
- 语法本质上是递归的——“数据”中的递归
- 解析:需要一种语言来分析语言——元编程作为基本工具。
解析可以看作是两个问题都需要解决的最简单的领域。
因此,我更喜欢Pereira-Shieber的Prolog and Natural-Language Analysis一书。
于 2014-04-18T06:46:32.107 回答