Implementation of Functional Languages

Volume 1268 of the series Lecture Notes in Computer Science pp 1-20


Introducing CLOVER: An object-oriented functional language

  • Lee BraineAffiliated withDepartment of Computer Science, University College London
  • , Chris ClackAffiliated withDepartment of Computer Science, University College London

* Final gross prices may vary according to local VAT.

Get Access


The search for a language which combines both functional and object-oriented features has a long and distinguished history [Can82, Car84, BK86, BD88, BGW91, MHH91, AP93, CL91, MMH91, Sar93, CL96]. The aim is to integrate the formal methods benefits of functional programming with the software engineering benefits of both paradigms. However, to date we know of no language which can claim to be both purely functional and purely object-oriented (and retains complete type safety). We present CLOVER, a new language which is 100% functional and 99% object-oriented. It is also completely type safe. We explain the design issues and how CLOVER achieves its aim. We also explain the “missing” 1%, discuss its relevance, and illustrate how its loss can be extenuated through the use of a new visual programming notation.