[Haskell-cafe] Byte Histogram
Richard O'Keefe
ok at cs.otago.ac.nz
Mon Feb 7 23:33:31 CET 2011
On 8/02/2011, at 10:43 AM, Roel van Dijk wrote:
> 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.
> 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
No, it doesn't. Here's an example from
"Clean - A Language for Functional Graph Rewriting",
T.H. Brus, M.C.J.D. van Eekelen, M.O. van Leer, M.J. Plasmeijer,
a 1987 paper which I _think_ is the first one about Clean:
Start stdin -> Double (Add (Succ Zero) Zero);
Double a -> Add a a;
Add Zero n ->n |
Add (Succ m) n ->Succ (Add m n);
You will notice
- an entire absence of 'let'
- an entire absence of any 'letrec'
You'll also discover that Clean was originally
- thought of as an intermediate language
- a subset of something called LEAN
Clean 1 adopted Haskell-like syntax, but it was lazy from the beginning.
More information about the Haskell-Cafe
mailing list