PLE treasure hunt -- Life

Multiple inheritance

Life's largest-common-subclass unification rule for classes leads to some rather strange behavior. After executing these lines:
:: red(chrominance => 30).
:: green(chrominance => 60).
:: bright(luminance => 100).

red <| color.
green <| color.

colorful(X:color) :- X.chrominance > 50.
What is the result of colorful(bright)?

Suppose we add these, presumably harmless, extra declarations:

bright_green <| bright.
bright_green <| green.
Now what is the result of colorful(bright)? Why do you think Life chose this behavior?


PLE Home page
Last modified: Fri Feb 2 13:47:34 "EST 1996