这可能是一个非常微不足道的问题:
我正在使用prolog为学校额外学分建立一个抽象的BST。我对Prolog非常陌生,我无法想象如何做这样的事情。
BST是以leaf
或node(X,L,R)
的形式创建的,其中L
是左边或更小的BST,R
是右边的或更高,BST。
我只提供了BST的功能作为谓词,例如card(BST, Card)
,它返回Card
作为树中元素的数量。因此card(node(1,leaf,leaf),Card)
之类的内容应该返回1
。
我不能完全理解如何开始。我的想法是leaf
和node
是单独的谓词。但是,我怎么连" tie"他们在一起?我如何定义node
的规则?