Next: , Previous: , Up: Programming techniques   [Contents][Index]

4.4 Blackboards

In machine-oriented languages, it is usually required that both the number of function arguments and their types are known and, as soon as functions need a larger number of parameters, these are collected in some structure or class. Because this is quite inflexible, functions in Common Lisp are allowed to have a variable number of parameters of arbitrary type. Additionally, the arguments can be named with certain keywords. This means that the keyword part of the argument list has an even number of elements which appear in pairs of the form symbol/value (such a list is called a property list). This allows for a very flexible parametrization of a lot of operations.

Another possibility of flexible passing of unstructured data is provided by the class blackboard which is defined in the package FL.UTILITIES. Such blackboards can also be modified which allows functions to return results via the blackboard. Sometimes (e.g. within the generic function iterate) several functions operate one after the other on the same blackboard which resembles very much an assembly line.