2

我对 Prolog 中递归的工作原理有基本的了解。我发现很难用声明性范式思考。您能否推荐一些学习资源(带有已解决的示例)来编写递归谓词?

4

2 回答 2

3

我在这里对“ Prolog 编程 - 解决方案的路径”问题的回答列出了几个 [书] 资源。

当我学习 Prolog 时,我发现 Leon Sterling 和 Ehud Shapiro 的The Art of Prolog比其他有关该主题的书籍更有启发性

Prolog 封面的艺术

Richard O'Keefe 的The Craft of Prolog看起来也不错,但我不能说我看过它:

Prolog封面工艺

于 2014-04-17T23:39:03.110 回答
2

我认为 Prolog 在“基本”自然语言处理方面表现最好。的确,那是它的首要战场,很久以前。

('基本',因为 NLP 有很多复杂性,与任何实现的选择完全无关......)

但是 NLP 显示了递归对于实现很重要的两个领域(这是问题所固有的):

  • 语法本质上是递归的——“数据”中的递归
  • 解析:需要一种语言来分析语言——元编程作为基本工具。

解析可以看作是两个问题都需要解决的最简单的领域。

因此,我更喜欢Pereira-Shieber的Prolog and Natural-Language Analysis一书。

于 2014-04-18T06:46:32.107 回答