|
![](/i/fill.gif) |
Orchid XP v8 wrote:
> OK, now I actually *know* abstract algebra, and your statements still
> make no sense to me.
I suspect you just never really thought it thru. You know that a compiler is
just a bunch of rewrite rules, for example, right?
Basically, everything a computer program does is mapping strings of bits to
abstract algebras. The I/O of a Turing machine is a mapping from strings of
whatever-symbols-can-be-on-the-tape to abstract algebras.
>> How do you know if your while loop terminates if you don't know how
>> predicate calculus works?
>
> You don't need to know the formal theory to understand how a simple loop
> works. Basic intuition will tell you that.
That's because the basics of predicate calculus are easy to learn. So easy,
you probably already knew them before you knew what it was called.
I have a box with some balls in it. I pull out one ball. It's black. I can
conclude that not all the balls that were in the box were white, right? That
means if I want to check if all the balls are white in a box, I can stop the
loop once I find the first black ball.
>> Actually, I think the answer is more that you know these things, and
>> you just don't know the terminology the academics use for much of the
>> stuff.
>
> The discussion seems to be gradually anealing towards the idea that it's
> not the *names* that are the problem, but the near-total lack of any
> semblance of documentation about them that doesn't assume you already
> hold a PhD in advanced mathematics.
In Haskell, yes, that could be the case. For example, "mempty is the
identity of mappend" makes perfect sense, if you know what "is an identity
of" means.
> Assuming you already know what a monoid is, this is quite transparent.
> If you've never heard of a monoid in your life, none of this makes the
> slightest semblance of sense.
Sounds like someone needs to write a textbook about what the terms in
Haskell means.
> However - and this is what makes me so angry - there is a strong element
> in the community who claim that Haskell should *only* be used by maths
> experts. I find that to be arrogant and elitist.
I suppose that is. I guess it depends on their goals. Telling someone else
what they should or should not use seems arrogant.
> The reasoning behind this seems to be "if you don't study category
> theory, you cannot write computer programs, so it's OK for Haskell to
> demand that everybody learns category theory before using it". This is
> of course easily falsifiable.
Haskell doesn't demand anything. :-) If you write the documentation for
people who don't study category theory, I'm sure Haskell won't object.
--
Darren New, San Diego CA, USA (PST)
Why is there a chainsaw in DOOM?
There aren't any trees on Mars.
Post a reply to this message
|
![](/i/fill.gif) |