
ok writes:
On 9 Oct 2007, at 9:10 am, jerzy.karczmarczuk@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