[Haskell-cafe] Comments from OCaml Hacker Brian Hurt
Manuel M T Chakravarty
chak at cse.unsw.edu.au
Fri Jan 16 07:22:29 EST 2009
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
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.
> 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.dubuisson at gmail.com> wrote:
>> On Thu, Jan 15, 2009 at 4:12 PM, Sittampalam, Ganesh
>> <ganesh.sittampalam at 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
>> identity element."
>> I've had some set theory, but most programmers I know have not.
More information about the Haskell-Cafe