码迷,mamicode.com
首页 > 其他好文 > 详细

Learn Prolog Now!:Chapter 3 Recursion

时间:2021-02-26 13:32:50      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:apt   learn   recursion   html   多个   集合   知识库   引用   就是   

http://www.learnprolognow.org/lpnpage.php?pagetype=html&pageid=lpn-htmlch3

本章有两个主要目标:

1. 在Prolog中引入递归定义。

2. 为了表明Prolog程序的声明性含义与其过程性含义之间可能存在不匹配。

3.1 递归定义

谓词可以递归定义。 粗略地说,如果谓词中的一个或多个规则引用了自己,则它是递归定义的。

现在,让我们考虑一下此定义的声明性和程序性含义。

“声明性”一词用于谈论Prolog知识库的逻辑含义。 也就是说,Prolog知识库的声明性含义只是“它说了什么”,或者“如果我们将其作为逻辑语句的集合来阅读,则意味着什么”。 而且此递归定义的声明性含义非常简单。 第一个子句(转义子句,即非递归子句,或者通常称为基子句)只是说:如果X刚吃掉Y,那么X现在正在消化Y。 这显然是一个明智的定义。

那么第二个子句,即递归子句呢? 这就是说:如果X刚吃掉Z并且Z在消化Y,那么X也在消化Y。 同样,这显然是一个明智的定义。

Learn Prolog Now!:Chapter 3 Recursion

标签:apt   learn   recursion   html   多个   集合   知识库   引用   就是   

原文地址:https://www.cnblogs.com/feifanrensheng/p/14450867.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!