[Haskell-cafe] Comments from OCaml Hacker Brian Hurt
leimy2k at gmail.com
Sat Jan 17 10:37:30 EST 2009
On Sat, Jan 17, 2009 at 7:33 AM, Lennart Augustsson
<lennart at augustsson.net>wrote:
> Thinking that Functor allows you to apply a function to all elements
> in a collection is a good intuitive understanding. But fmap also
> allows applying a function on "elements" of things that can't really
> be called collections, e.g., the continuation monad.
I hadn't even thought about fmap for continuations... interesting!
It falls out of the logic though doesn't it?
I'm not one to throw all the cool mathematical and logical thinking out for
"simpler terms" or not covering the full usefulness of certain abstractions.
I know Haskell allows for lazy evaluation (as an implementation of
non-strictness) but Haskell programmers are NOT allowed to be lazy :-)
Try learning the terms that are there... and ask for help if you need
help... most of us are pretty helpful!
Improving documentation can pretty much *always* be done on any project, and
it looks like that's coming out of this long thread that won't die, so kudos
to the ones being the gadflies in this instance. It really looked at first
like a long troll, but I think something very useful is going to come out of
> -- Lennart
> On Sat, Jan 17, 2009 at 11:17 AM, Andrew Coppin
> <andrewcoppin at btinternet.com> wrote:
> > Cory Knapp wrote:
> >> Actually, that was part of my point: When I mention Haskell to people,
> >> when I start describing it, they're generally frightened enough by the
> >> on pure code and lazy evaluation-- add to this the inherently abstract
> >> nature, and we can name typeclasses "cuddlyKitten", and the language is
> >> still going to scare J. R. Programmer. By "inherently mathematical
> >> I didn't mean names like "monoid" and "functor", I meant *concepts* like
> >> monoid and functor. Not that either of them are actually terribly
> >> the problem is that they are terribly abstract. That draws a lot of
> >> (especially mathematicians), but most people who aren' drawn by that are
> >> hugely put off-- whatever the name is. So, I guess my point is that the
> >> is irrelevant: the language is going to intimidate a lot of people who
> >> intimidated by the vocabulary.
> > Oh, I don't know. I have no idea what the mathematical definition of
> > "functor" is, but as far as I can tell, the Haskell typeclass merely
> > you to apply a function simultaneously to all elements of a collection.
> > That's pretty concrete - and trivial. If it weren't for the seemingly
> > cryptic name, nobody would think twice about it. (Not sure exactly what
> > you'd call it though...)
> > A monoid is a rather more vague concept. (And I'm still not really sure
> > it's useful on its own. Maybe I just haven't had need of it yet?)
> > I think, as somebody suggested about "monad", the name does tend to
> > a feeling of "hey, this must be really complicated" so that even after
> > you've understood it, you end up wondering whether there's still
> > more to it than that.
> > But yes, some people are definitely put off by the whole "abstraction of
> > abstractions of abstraction" thing. I think we probably just need some
> > concrete examples to weight it down and make it seem like something
> > applicable to the real world.
> > (Thus far, I have convinced exactly *one* person to start learning
> > This person being something of a maths nerd, their main complaint was not
> > about naming or abstraction, but about the "implicitness" of the
> > and the extreme difficulty of visually parsing it. Perhaps not surprising
> > comming from a professional C++ programmer...)
> >> At the same time, I think everyone is arguing *for* better
> >> And you're probably right: better documentation will bring the abstract
> >> nonsense down to earth somewhat.
> > Amen!
> > _______________________________________________
> > Haskell-Cafe mailing list
> > Haskell-Cafe at haskell.org
> > http://www.haskell.org/mailman/listinfo/haskell-cafe
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-Cafe