Smalltalk

Smalltalk is an object-oriented, dynamically typed, reflective programming language. Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human–computer symbiosis." It was designed and created in part for educational use, more so for constructionist learning, at the Learning Research Group of Xerox PARC by Alan Kay, Dan Ingalls, Adele Goldberg, Ted Kaehler, Scott Wallace, and others during the 1970s. wikipedia

Smalltalk represented everything as objects which could offer their own interpretation of requests.

For example, computing the depth of a binary tree involves computing the depth of its left and right subtrees.

depth ^ (left depth max: right depth) + 1

To complete this calculation we define the value for null trees. See Null Object pattern.

depth ^ 0