CLOS: integrating object-oriented and functional programming

Richard P. Gabriel, Jon L. White, Daniel G. Bobrow
1991 Communications of the ACM  
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 Lisp-to include the benefits of data abstraction, extensible type classification, incremental operator definition, and code reuse through an inheritance hierarchy. CLOS-the
more » ... ommon Lisp Object System[2], which is an outcome of the ANSI standardization process for Common Lisp-represents a marriage of these two traditions. We explore the landscape in which the major object-oriented facilities exist, showing how the CLOS solution is effective within the two contexts.
doi:10.1145/114669.114671 fatcat:nbytymzpn5d4bhhxotp72hvzra