I'm sorry, but this constant referring back to C# and Linq might be a "sound strategy" from a Microsoft Product perspective, but it is doing nothing for me in terms of understanding either FP or Haskell, the purported objective of these lecture.
I can see that people who already are experts in the area are very excited about this. Perhaps they were the intended audience, though I don't understand the need for preaching to the choir... but whatever. Congratulations to all of you. As the expert on
being a "n00b" .. I can tell you these lectures are doing absolutely ZERO for me. FWIW.
I'm going back to the Univ. of Aachen lectures on Haskell programming because they are catered towards a less expert audience and don't concentrate so much on how Haskell compares to other technologies (C# or F# or Ruby or Pascal or whatever) so heavily.
I hope I'll gain enough knowledge to apply Haskell to some of the stuff I need to do in real life, and maybe then I'll be able to understand this lecture series which, truth be told, should be titled "A Comparative study of Haskell and C# for .Net & Haskell
Hello to all the other newcomers, I saw this on reddit and I think this series of lectures is suitable for people new to Haskell? For people like me Erik is a bit out of reach right now, but after learning some more I will be able to grasp the C9 lectures
better I think?
Please also check this out:
FP Course using Haskell: In English (class notes or 'transparencies' in PDF format are on this page and are also helpful):
exoteric, I appreciate your comment and perhaps I could have worded my comment in a less belligerent way. I do have a few comments about your assertions:
"practical uses of certain more complex abstract functions is quite reasonable. And that doesn't imply that a game needs to be built to show it."
Yes, one would have to agree with the general spirit of the comment, but there is a time and place for teaching complex abstractions. Complex abstractions without a "hook" are useless from a pedagogical perspective because pretty soon you have no-one new
to teach and the choir is already well versed in the black art of whatever-it-is-that-rings-your-collective-bell.
I don't think a game needs to be built, but maybe something concrete instead of "lists within lists within lists".. perhaps that is immediately accessible to some here, but for most people, it is better to sort of feel their way around a new paradigm, and
Functional Programming _is_ a new paradigm especially for people whose brains have been "messed with" by languages like C or BASIC etc ...
So, that is what I was trying to get at, and at the root of it was a misplaced assertion that perhaps these lectures were for general consumption. Personally, I would love if someone would explain what that game is doing. For example, I looked at the code,
and learned something new about "Data" and the "Deriving" part. So I went and looked it up in the Haskell documentation to see what exactly it does.
You see, when I have the hook, I'll do the leg-work. The "hook" is the concrete part. Something "I" (the proverbial outsider programmer/analyst ie "non haskeller" ) can relate to. Something in the real world which I can anchor myself to and then start feeling
around this new "elephant" trying to understand what it is. And I disagree that abstract comparisons between two language definitions (C# and Haskell) are somehow useful for the general population (or that they constitute this "hook" that I speak of.) The
people who can be worthwhile contributers to Haskell (if that is a goal at all) are scattered within the technical community, and not necessarily within just C# community. So to claim it is the right thing to do is going a bit far.
An average programmer (especially a C# programmer) moves bits around and does daily drudge-work and not necessarily spend his/her time philosophizing about higher order functions and how they could be used to optimize the inventory reports. So, it would
be more helpful -- maybe not in this lecture series as this is "not Haskell 101" -- if an average daily problem encountered by a generic programmer/developer/ (dare I say Systems Admin?) was presented and then in every lecture the solution was built upon.
Again, Haskell appeals to me because it strives to be "pure" and is simpler to understand because it presents mathematical concepts without extra fluff or baggage. But I get the feeling that the "high priest" class (the alpha nerds .. not Mr. Meijer or Brian
etc.) thinks that certain problems are worthy of their attention while the more pedestrian and mundane aspects of programming are kind of better left on the wayside as they're just not sexy enough to merit any serious intellectual effort in terms of teaching,
even though, IMO, mundane things can get you started and then you can go on and spend more time on the hi-fi stuff... but you'd have to be "in the game" to do that. If you walked off because people insisted on teaching you currying (it's great! please don't
get me wrong) and really esoteric stuff ... then I don't know if it is realistic to say that FP should be the premier mode of computing. It just won't happen and I don't think the revolution will come from the ranks of play-it-safe hordes of C# programmers.
(no offense to play it safe C# programmers I'm sure you're great people to have a beer or two with).
Again, this is just what I think and I don't mean to hurt anyone's feelings.
First off, I have the utmost respect for Dr. Meijer and I think he is a great "fundamentalist" evangelist for functional programming. For a long time, Haskell seemed too ivory tower to me and I didn't bother checking it out.
You know what made me take a serious look? A mario brothers clone ("nario") written in Haskell by a Japanese hacker.
code here. So I've been looking at the LYaHfGG and the Haskell Books ... and I guess I was hoping these lectures would be more accessible but I guess not. Most talks on Haskell involve the high falootin' higher order this and monad vs monoid that .... I
mean yeah, sure, that all is possible, but where are we supposed to go learn basic stuff? Especially when claims are made that FP is destined to replace Procedural programming etc (which it probably is).
Is anyone willing to come down from the mountain and teach us mere mortals? or is Haskell for big shot brainiacs? For the "real problems" out there? because if so, isn't there the possiblity that it will end up in Lisp-Lisp-Land ?
I can appreciate these lectures, but I think it would be nice if there was a series of lectures which dealt with beginners. I guess Erik is trying to convert the C# crowd by repeatedly bringing up references to it, but I think it would have been better had
he presented the problems and then just showed how it is done in Haskell.
One drawback of having an Uber-Expert teach something like this is that things that seem trivial to them will only make sense (and therefore appeal) to "the initiated" .. that leaves beginners like me out.
I'm just checking Haskell out and was hoping I'd be able to learn something from these lectures but he is constantly delving into advanced material and constantly keeps comparing with C# ... I don't really know what the purpose of this series of lectures
is. To compare and contract C# vs Haskell or to elaborate on Functional Programming Fundamentals using Haskell?
I find Erik's teaching style a little hap-hazard and rather opaque from an outside learner's perspective. If the idea is to appeal to the Haskell initiates, then I guess the lectures are going well. Not all of us are super mathematicians waiting for the
"triple curried function" manna to descend from the Redmond heaven... ROLLEYES
How about a little less pretentious, and a little more concrete? How about writing a little game? Like Tetris or something?
We'll figure out the Currying and the C# comparisons on our own thankyouvery much. [\RANT]