Method Combinators Didier Verna To cite this version: Didier Verna. Method Combinators. European Lisp Symposium, 2018, Marbella, Spain. hal- 01813488 HAL Id: hal-01813488 https://hal.archives-ouvertes.fr/hal-01813488 Submitted on 12 Jun 2018 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Method Combinators Didier Verna EPITA Research and Development Laboratory Le Kremlin-Bicêtre, France
[email protected] ABSTRACT 1 INTRODUCTION In traditional object-oriented languages, the dynamic dispatch al- Common Lisp was the rst programming language equipped with gorithm is hardwired: for every polymorphic call, only the most an object-oriented (OO) layer to be standardized [16]. Although specic method is used. Clos, the Common Lisp Object System, in the lineage of traditional class-based OO languages such as goes beyond the traditional approach by providing an abstraction Smalltalk and later C++ and Java, Clos, the Common Lisp Ob- known as method combinations: when several methods are applica- ject System [2, 5, 7, 9], departs from those in several important ble, it is possible to select several of them, decide in which order ways. they will be called, and how to combine their results, essentially First of all, Clos oers native support for multiple dispatch [3, 4].