
Andrew Coppin wrote:
[snip]
You're missing a lot of the conceptual background
Possibly. I find that most of what is written about Haskell tends to be aimed at absolute beginners, or at people with multiple PhDs. (As in, people to whom arcane terms like "denotational semantics" actually *means* something.) I remember seeing somebody wrote a game (!!) in Haskell - despite the fact that this is obviously impossible. So I went to read the paper about how they did it... and rapidly become completely lost. I get that they used something called "funtional reactive programming", but I am still mystified as to what on earth that actually is, or how it functions.
But an awful lot of the more popular extensions are primarily about relaxing constraints and picking the most natural way to follow through.
"Hey, let's make it so that classes can have several parameters!" Um... OK, that more or less makes sense. I can see uses for that.
"Hey, let's make it so a class instance can have one or more types associated with it!" Er... well, that seems straight forward enough. Alright.
"Hey, let's make it so that class methods can have completely arbitrary types!" Wait, what the hell? How does *that* make sense?! o_O
Speaking as someone who, like you, came to the language recently and for whom many of haskell's outer corners are still confusing, I should firstly say that I can see where you're coming from but that it puzzles me as to why you think things ought to be obvious or why, when something isn't obvious to you, it must be useless? Could the answer be that it will take some time before you understand the motivation for features that don't seem natural to you? You might need some patience and study along with everything else, I know I do (and people have been generous with links to work that explains the motivation). I only say this because you seem, bizarrely, to be suggesting that you could improve things by undoing the work of all these "scary people" as you call them in another post, whilst admitting that you don't understand it.
"Hey, let's make it so you can use a type variable on the RHS that doesn't even appear on the LHS!" Um... that's going to be tricky, but sure, OK.
"Hey, let's make it so you can implement Prolog programs inside the type system!" Right, I'm getting my coat now... :-P
In short, some of these relax restrictions in fairly obvious directions, and others just seem downright bizzare.
It helps if you can picture a matching explicitly-typed language.
I don't really understand that statement.
An idea you might find helps: what you're finding with algorithms, I find with architecture when I have the extensions that let me type it.
...or that one...
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
-- View this message in context: http://www.nabble.com/Memoization-tf3822500.html#a10829748 Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.