[Haskell-cafe] Byte Histogram

Roel van Dijk vandijk.roel at gmail.com
Mon Feb 7 22:43:29 CET 2011

On 7 February 2011 22:00, Andrew Coppin <andrewcoppin at btinternet.com> wrote:
> I clearly have my languages mixed up.
> The language I'm thinking of required all variables (even top-level ones) to
> be declared with "let" - unless the definition is recursive, in which case
> you have to say "letrec" (i.e., the compiler it too stupid to deduce this
> automatically). Apparently that isn't Clean...

You are not necessarily wrong. Clean, like Haskell, is a moving
target. To quote the paper "Exchanging Sources Between Clean and
Haskell" [1]:

  The year of 1987 was a founding one for two pure, lazy, and
  strongly typed functional programming languages. Clean (Brus et
  al., 1987) was presented to the public for the first time and
  the first steps towards a common functional language, later
  named Haskell, were taken (Hudak et al., 2007).

  Clean was conceived at the Radboud University Nijmegen as a core
  language that is directly based on the computational model of
  functional term graph rewriting to generate efficient code. It
  also serves as an intermediate language for the compilation of
  other functional languages (Koopman and Nöcker, 1988;
  Plasmeijer and van Eekelen, 1993). For these reasons, it
  deliberately used a sparse syntax (van Eekelen et al., 1990):
  “... at some points one can clearly recognize that [..] Clean
  is a compromise between a functional programming language and
  an intermediate language used to produce efficient code. For
  instance, a minimal amount of syntactic sugar is added in [..]
  Clean.”. Later, the core language was sugared.

The Clean of 1987—1994 sounds a lot like the language you are
talking about.

1 - http://www.cs.ru.nl/~thomas/publications/groj10-exchanging-sources-between.pdf

More information about the Haskell-Cafe mailing list