On 04/07/2004, at 2:15 PM, Rick Welykochy wrote:

I've put up slides for my "Beyond C, C++, Perl and Python" talk at:
http://www.algorithm.com.au/mt/archives/talks/ beyond_c_c_perl_and_python.html
I'm happy to discuss any aspects of it on-list or off-list. I was actually intending to write up some additional references and discussion on that page, especially for topics that I wanted to cover but didn't have time for (e.g. garbage collection and meta-programming), but I figured that if people are actually interested in all that, they can ask me and I'll add to the page later :).

Simply fascinating. As a programmer who's been through C then C++ (still a fave!) then on through scriptors like perl, I found the paper very enlightening. I've dabbled in Haskell and found out my onw programming limitations ... need more work in the ML/functional area. I could probably do with a good dose of Lisp as well.

Thanks for the feedback Rick. Unfortunately the presentation didn't cover anywhere near as much as I really wanted to cover: I basically spent the entirety of the talk going on about type systems, which wasn't my original intent, but I think it worked out OK. I guess I can cover everything else in a future talk, if people are so inclined ...


Any references you have on these topics most appreciated.

References, hmmm ... a big, big problem with Haskell is that most of the references you can find are papers; not books or easy-to-learn tutorials. That wouldn't be too bad, but the papers are usually targeted at people who already know the language: a lot of Haskell development right now is involved with advancing the language, and is no use to the beginner and is completely overwhelming. I've found that any introductory books on Haskell are usually targeted at somebody who's completely new to programming, or assumes that you have a functional programming mindset already. (Keep in mind that a lot of the Haskell language designers and implemenators are _really_ smart, and they tend to live in ivory towers rather than try to figure out what the masses are up to :).


I don't think the language is actually that hard to learn, but I haven't yet found a book or tutorial that presents the ideas in a digestible way to someone who's new to the language, but is already an experienced programmer using imperative or object-oriented languages. That said, probably the best bet for learning Haskell is Hal Daume's "Yet Another Haskell Tutorial":

    http://www.isi.edu/~hdaume/htut/

I find that the start's pretty slow, and presents things in an order I wouldn't choose if I were to help someone understand the language, but lots of other people have liked it, so hopefully you might too.

Another tutorial you may find useful is Tom Moertel's "Haskell for Perl Hackers" talk:

http://community.moertel.com/ss/space/Talk+-+Haskell+for+Perl+Hackers

Which covers the basics quite well, but unfortunately doesn't have the time to dive into why the basics are the way they are, and IMHO doesn't really whet the appetite for functional programming. e.g. he explains what higher-order functions are and gives an introduction to Haskell's very powerful type classes, but doesn't explain how make programmer better by showing real, concrete advantages over similar ideas in OO languages. Still, it's a good talk, and most likely he couldn't get deeper into those topics because of time constraints.

One tutorial I can highly recommend is Merjis's one for learning O'Caml:

    http://www.merjis.com/developers/ocaml_tutorial/ch1/

which guides you through the language from the viewpoint of someone reasonably familiar with C++, and even goes into fun stuff like walking through an O'Caml compiler's generated assembly code to show you what's happening underneath the hood, and how it can compete so well with imperative languages like C.

I don't know Lisp very well apart from "it has macros, and macros are schweeet", so I can't really recommend anything to do with that. Lisp/Scheme are on my list of things to learn more thoroughly by the end of the year :).

P.S. I don't mean to sound like an armchair critic and throw stones at the functional language community for the lack of tutorials, but it _is_ hard to get into it if you're already an experienced programmer and don't have three months to learn slowly by osmosis. For me, the reward was more than worth it: hopefully I'll sit down some time and write a tutorial of my own which everybody else can criticise ;).


-- % Andre Pang : trust.in.love.to.save

--
SLUG - Sydney Linux User's Group Mailing List - http://slug.org.au/
Subscription info and FAQs: http://slug.org.au/faq/mailinglists.html

Reply via email to