[Cst-1b] prolog 99/6/7

Jeremy Adams jaa31@cam.ac.uk
Tue, 2 May 2000 13:48:09 +0100


Hi Phebe,

> Can someone explain how to use different lists for the following question
>
> 99/6/7

The model answer given to us by our supervisor was:

enum(Tree, Zeros, Ones) :- enum_diff(Tree, Zeros-[], Ones-[]).

enum_diff(n(X, Y, Z), Zeros-ZDiff, Ones-ODiff) :- enum_diff(X, Zeros-R01,
Ones-R11), enum_diff(Y, R01-R02, R11-R12), enum_diff(Z, R02-ZDiff,
R12-ODiff).
enum_diff(0, [0|R]-R, X-X).
enum_diff(1, X-X, [1|R]-R).

Jeremy