递归

阶乘运算

实现外取操作

实现汉诺塔

实现树结构

定义几个操作符

创建tree数据库

定义"is_sibling_of"

定义"is_same_level_as"

定义"has_depth",这里用到了cut技术,即"!",将在后面介绍。

定义"path"(path是一条从根到该节点的路径)

定义“height” (height是从该节点到其下某个叶子的最大路径长度)

setof是一个内置谓词(参见Predicate setof/3), 搜集各个分支的高度汇总到Set变量中。

定义"leaf"(叶子节点)

定义"max"

目标