On Dec 24, 12:13 pm, Reinier Zwitserloot <[email protected]> wrote:
> Ah, Tony Morris. Still getting kicked out of ##java within 10 minutes
> of opening your mouth? I do want functional programming to become more
> of an influence, so some friendly advice: You don't want him as your
> evangelist.
I don't want me as an evangelist either. In fact, the very idea is
grotesque. No I don't frequent ##java.
>
> Please look at the PDF I linked to, written by amongst others, Martin
> Odersky. Here's a link,
> again:http://www.cs.kuleuven.be/~adriaan/files/higher.pdf
I've read that paper. Indeed I reviewed some of the ideas in it with
Adriaan Moors. In fact, I wrote the only existing library that
implements the ideas in that paper (and other papers mind you
including the one I mention below). Would you like to play with it? I
comes with code samples and everything!
>
> it contains evidence that you're talking complete and utter crud.
> Please stop talking hogwash.
Then you'll gladly point it out or not, as usual.
>
> Did I mention the paper is co-authored by Odersky? If his
> understanding of the concept 'higher kinded type' is entirely
> different from your own, I suggest you get your terms straight.
Higher-kinds were discussed by type theorists well before Odersky's
paper. But yes, he has the term correct and I assume you have misread
the paper. Appealing to Odersky as an authority to support your
position is pretty darn silly - but you probably aren't aware of just
how silly it is so I'll just smile :)
>
> The paper:
>
> A) It says that map() is a method in Scala's Iterable trait. Right
> there, on page 2. It even lists a handy snippet of Iterable!
Nobody suggested it wasn't. Your comprehension skills are lacking
quite considerably. Another display of your inadvertent confirmation
bias perhaps.
>
> B) It says that early scala type system could not handle this Iterable
> thing (a.k.a. Mappable) properly because back then it didn't support
> type constructors while constructing type constructors. Which it then
> equates to the term 'higher kinded types'.
"Mappable" is not iterable. It's called a covariant functor. It has
particular properties; namely satisfying the identity and composition
law (unenforced by the type system). "Iteration" is best describe by
an Applicative Functor and what is commonly called Traversable. You'll
find it in a paper called "The Essence of the Iterator Pattern". I'll
briefly describe it for you if you're willing to accept that you're
way out of your depth (otherwise what's the point? to listen to your
pseudo-intellectual bullshit?).
I'm glad to have educated you and corrected this specific error for
you - no thanks are necessary - I enjoy it. Now, are you ready to stop
beating your chest and start learning more? I can even give you some
cool words for you to spout on other forums so that you look clever!
OK, that was a bit mean - I really do enjoy teaching - even idiots (no
really!).
>
> C) The paper concludes with a solution that is 100% analogous to my
> java example (and incidentally, your trait Functor).
You mean your pretend-Java example right? Since Java cannot express a
general covariant functor - it's incompetent in this regard.
>
> Contrast this to your claims that:
>
> A) map() isn't part of Scala's iterable,
Again, your comprehension skills require revision.
>
> B) My mappable example has nothing to do with higher kinded types, and
Which it doesn't. Do you even know what this term means yet? I suggest
not using the Odersky/Moors paper to obtain this fundamental knowledge
- for quite complicated reasons that I dare not challenge you with.
Would you like a reference?
>
> C) my solution isn't what scala does / aggrevates you to no end and is
> apparently vastly inferior, which I infer from your condescending
> tone. Then again, your tone is always condescending so its kinda hard
> to tell.
I am aggravated? You're always harping on about "condescending tones"
and quite frankly, making stuff up. Sure, you haven't a friggin clue
what you're talking about. Don't be alarmed - it's common. Less common
is that you're invariably and catastrophically wrong about the topics
you claim authority on. This isn't anywhere near as condescending as
it is an observation. What "tone" anyway? Is this an appeal to
mystical misnomer to support your assertions of condescension? Are you
going to say anything *concrete* supported by *evidence* or keep
talking nonsense in an elaborate attempt to appear intellectually
endowed while also displaying your gross ineptitude to comprehend
general discourse? These are serious questions - not "condescending".
Oh poor little you, a little bit of heat then you're crying and
evading the topic? *sob sob* he's being mean to me and said I don't
have a clue *sob sob*. Go down to your local hardware store, purchase
a 40kg bag of concrete, mix with water, stir thoroughly then harden
the fuck up. And stay on topic.
>
> Please stop insulting me, review the PDF, and go away.
Perhaps you've latched onto this particular paper as your newfound
knowledge? Trust me, there is more to the world that your
misinterpretation of this paper.
>
> On Dec 23, 11:55 pm, Tony Morris <[email protected]> wrote:
>
> > > An interface that declares that a certain container type is capable of
> > > running the map function. This is Iterable in scala...
>
> > Bzzt wrong, perhaps you don't know as much about Scala as you think.
> > And even if it was Iterable, this has nada to do with higher kinds -
> > you know, abstracting on *type constructors* as James has already
> > mentioned - perhaps you don't know as much about type system as you
> > think.
>
> > This is what a "mappable" declaration looks like in Scala using higher
> > kinds:
>
> > trait Functor[F[_]] {
> > def fmap[A, B](fa: F[A], f: A => B): F[B]
>
> > }
>
> > Note its complete lack of resemblance to Iterable.
>
> > And in Haskell:
>
> > class Functor f where
> > fmap :: f a -> (a -> b) -> f a
>
> > And in Java:
> > Oh wait, you can't; you're screwed - the type system is completely
> > inept.
>
> > You're out of depth again Zwitserloot. You're stuck in Java Nanny land.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "The
Java Posse" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/javaposse?hl=en
-~----------~----~----~----~------~----~------~--~---