[Haskell-cafe] Re: New slogan... (A long speculation)

jerzy.karczmarczuk at info.unicaen.fr jerzy.karczmarczuk at info.unicaen.fr
Tue Oct 9 19:49:20 EDT 2007

ok writes: 

> On 9 Oct 2007, at 9:10 am, jerzy.karczmarczuk at info.unicaen.fr wrote:

/ I cited some arguments of our neighbours promoting imperative languages / 

>> the FLs condition the young minds in a way we do not appreciate.
> The only empirical evidence I'm aware of about this comes from
> Monash University ...  So in the one case that I have any
> personal knowledge of, learning Scheme first *speeded up* the
> adaptation of students.

Good! But notice that I did not speak about facts, only about the
appreciation... We tried such arguments as well, reversing what I have
written next in the same posting (that learning, say, Python, THEN
improves the assimilation of Haskell; the argument works, it seems, in
both directions).
My point, hidden in a long text, was the following: don't force necessarily
the FLs as first languages, even if you think (as many of us) that this
is good. Adapt to hostile environment. Try to infiltrate the pedagogic
process later... 


>> There is no lazy untyped language.
> Yes there is.  S.  There is an open source version of S called R.
> S(R) is dynamically typed.  Function arguments are *always* passed
> unevaluated.  It looks imperative, but if you ignore S4 objects it's
> basically functional.  An assignment like
> 	a[i] <- x
> is defined to have the meaning
> 	a <- "[<-"(a, i, x)
> and if you have previously done b <- a, b will not be changed.

No, I am sorry, I know a little bit "R". This is not a functional language.
There is some laziness (which looks a bit like macro-processing), sure.
The manual speaks about promises and about forcing them. But, at the same
time we read that the call by value IS the protocol. And the language is
impure, with reassignments. I don't see how to make co-inductive
constructions, infinite streams, etc. (Perhaps I didn't hard enough?...)
So, this example is not what I wanted... But thank you for reminding me
this point. 

BTW. some computer algebra packages give the user some laziness. I tried to
implement lazy "infinite" structures in Maple and in MuPAD, and it could
be done, but with aid of some horrible contortionism. 

Jerzy Karczmarczuk 

More information about the Haskell-Cafe mailing list