CLOS: integrating object-oriented and functional programming


Gabriel, R. P.; White, J. L.; Bobrow, D. G. CLOS: integrating object-oriented and functional programming. Communications of the ACM. 1991 September; 34 (9): 23-38.


Lisp has a long history as a functional language, where action is invoked by calling a procedure, and where procedural abstraction and encapsulation provide convenient modularity boundaries. A number of attempts have been made to graft object-oriented programming into this framework without losing the essential character of Lispto include the benefits of data abstraction, extensible type classification, incremental operator definition, and code reuse through an inheritance hierarchy. The Common Lisp Object System (CLOS), a result of the ANSI standardization process for Common Lisp, represents a marriage of these two traditions. This article explores the landscape in which the major object-oriented facilities exist, showing how the CLOS solution is effective within the two contexts.

Read more from SRI