I have to say, I agree with Lennart here. Terms like monoid have had
a precise definition for a very long time. Replacing an ill-defined
term by a vaguely defined term only serves to avoid facing ones
ignorance - IMHO an unwise move for a technical expert. Learning
Haskell has often been described as a perspective changing, deeply
enlightening process. I believe this is because the language and the
community favours drilling down to the core of a problem and exposing
its essence in the bright light of mathematical precision. It would
be a mistake to give up on that.
We could call lambda abstraction, "name binder", and we could call the
lambda calculus, "rule system to manipulate name bindings". That
would avoid some scary greek. Would it make functional programming
any easier? In contrast, even the planned new C++0x standard uses our
terminology:
http://en.wikipedia.org/wiki/C%2B%2B0x#Lambda_functions_and_expressions
Ok, ok, they do mutilate the whole idea quite brutally, but the point
is, we got in their heads. That counts.
I am all for helping beginners to learn, but I am strongly against
diluting what is being learnt. If some of our terminology is a
problem, we need to explain it better.
Manuel
Lennart Augustsson:
Most people don't understand pure functional programming either. Does
that mean we should introduce unrestricted side effects in Haskell?
-- Lennart
On Thu, Jan 15, 2009 at 4:22 PM, Thomas DuBuisson
<thomas.dubuis...@gmail.com> wrote:
On Thu, Jan 15, 2009 at 4:12 PM, Sittampalam, Ganesh
<ganesh.sittampa...@credit-suisse.com> wrote:
Lennart Augustsson wrote:
I have replied on his blog, but I'll repeat the gist of it here.
Why is there a fear of using existing terminology that is exact?
Why do people want to invent new words when there are already
existing ones with the exact meaning that you want? If I see
Monoid I
know what it is, if I didn't know I could just look on Wikipedia.
If I see Appendable I can guess what it might be, but exactly what
does it mean?
I would suggest that having to look things up slows people down
and might distract them from learning other, perhaps more useful,
things about the language.
Exactly. For example, the entry for monoid on Wikipedia starts:
"In abstract algebra, a branch of mathematics, a monoid is an
algebraic structure with a single, associative binary operation and
an
identity element."
I've had some set theory, but most programmers I know have not.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe