[Oberon] Oberon and closures
benpsm at gmail.com
Thu Oct 30 17:54:24 MET 2008
On Oct 30, 2008, at 09:11, Jörg Straube wrote:
> What about this?
> MODULE Example;
> (* my oberon is also a little rusty *)
> Printer = POINTER TO Closure;
> Closure = RECORD
> n-: INTEGER;
> Print: PROCEDURE();
> PROCEDURE CreatePrinter*(i: INTEGER): Printer;
> VAR s: Printer;
> NEW(s); s.n :=i; RETURN Printer
> VAR p, q: Printer;
> END Example.
Indeed, there is an equivalence between objects (state with behavior)
closures (behavior with state).
Anton van Straaten observed a few years ago (more humorously than I
The venerable master Qc Na was walking with his student, Anton.
prompt the master into a discussion, Anton said "Master, I have heard
objects are a very good thing - is this true?" Qc Na looked pityingly
his student and replied, "Foolish pupil - objects are merely a poor
Chastised, Anton took his leave from his master and returned to his
intent on studying closures. He carefully read the entire "Lambda: The
Ultimate..." series of papers and its cousins, and implemented a small
Scheme interpreter with a closure-based object system. He learned
looked forward to informing his master of his progress.
On his next walk with Qc Na, Anton attempted to impress his master by
saying "Master, I have diligently studied the matter, and now understand
that objects are truly a poor man's closures." Qc Na responded by
Anton with his stick, saying "When will you learn? Closures are a poor
object." At that moment, Anton became enlightened.
More information about the Oberon