在我的实现中,二叉树被定义为Tree(Node,Left,Right)。
我正在写一个isBinaryTree( Term )函数来检查 Term 是否是二叉树,因为Term可以是任何Prolog术语。
这是我的实施:
isBinaryTree(nil).
isBinaryTree(Tree(_,left,right)) :- isBinaryTree(left), isBinaryTree(right).
但是在下面的输入中它返回“no”。
isBinaryTree(Tree(a, nil, nil)).
在
上返回“是”isBinaryTree(nil)
为什么isBinaryTree(树(a,nil,nil))在prolog上不会给我一个“是”?
答案 0 :(得分:-1)
使用大写字母代表Prolog中的变量。