[comp.lang.c++] First Class Routines Not long this time

db@lfcs.ed.ac.uk (Dave Berry) (03/15/89)

In article <118@eiffel.UUCP> bertrand@eiffel.UUCP (Bertrand Meyer) writes:
>    First-class functions are great in [...] modern functional languages,
>especially Robin Milner's ML and David Turner's Miranda.
>    [...]
>    One way to summarize this discussion is to say that I do not know of any
>good way to reconcile the following three language traits:
>
>    1. Routine arguments (in the above sense, i.e. routine arguments to
>            routines).
>    2. Static type checking.
>    3. A language design that makes it possible to have separate
>            compilation of modules.

Standard ML supports all three of these requirements.  I believe Miranda
does as well.  The separate compilation schemes used in New Jersey ML
and Poly/ML are rather different from those used by conventional
languages, but this is mainly because ML is an interactive language,
not because of the static type checking.

Perhaps the problem is harder if you have type parameterisation instead
of (or as well as) universal polymorphism?

>    More generally, the problem is one of language design.

I think that routine arguments combine rather nicely with the other
features of eiffel, at least what I've seen of it (a few journal articles).
But it's your language, not mine.  Is your book available in the U.K.,
by the way?

Follow-ups to comp.lang.eiffel, I should think.

Dave Berry,	Laboratory for Foundations of Computer Science, Edinburgh.
		db%lfcs.ed.ac.uk@nss.cs.ucl.ac.uk
		<Atlantic Ocean>!mcvax!ukc!lfcs!db