‹Programming› 2022
Mon 11 - Thu 14 April 2022
Mon 21 Mar 2022 09:15 - 10:00 at Auditorium Nobre - ELS I

While folklore teaches us that closures and objects are two sides of the same coin, they remain quite different in practice, most notably because closures are opaque, the only supported operation being to call them.

In this article we discuss a few cases where we need functions to be less opaque, and propose to satisfy this need by extending our beloved $\lambda$ so as to expose as sorts of record fields some of the variables it captures. These \emph{open closures} are close relatives of CLOS’s \emph{funcallable objects} as well as of the \emph{function objects} of traditional object-oriented languages like Java, except that they are functions made to behave like objects rather than the reverse.

We present the design and implementation of such a feature in the context of Emacs Lisp.

Mon 21 Mar

Displayed time zone: Lisbon change