/* lookup(Key,Dictionary,Value) :- Dictionary contains the value indexed under Key. Dictionary is represented as an ordered binary tree. */ lookup(Key,dict(Key,X,Left,Right),Value) :- !, X = Value. lookup(Key,dict(Key1,X,Left,Right),Value) :- Key < Key1 , lookup(Key,Left,Value). lookup(Key,dict(Key1,X,Left,Right),Value) :- Key > Key1, lookup(Key,Right,Value). % Program 15.9: Dictionary lookup in a binary tree