如何在 prolog 中获取谓词以返回值?
我需要找到树的一个节点,并检查它是否是最小堆。我猜它是这样的: -
getnode(tree(_, node, _), node).
到目前为止我的代码是这样的
minheap(tree(L, Node, empty)) :-
getnode(L, Val),
Node =< Val,
minheap(L).
minheap(tree(empty, Node, R)) :-
getnode(R, Val),
Node =< Val,
minheap(R).
getnode(tree(_,n,_) , n).
输入的类型是-
minheap(tree(empty,3,tree(tree(empty,8,empty),5,tree(empty,7,empty)))).
输出应该是真的。