55 comments

[ 3.2 ms ] story [ 55.5 ms ] thread
Was just hit with the desire to learn more about Haskell this weekend, after stumbling on some notes from a Language Paradigms class in school...can't wait to check this out!
Favorite pairs from the 'X as seen by Y' slide: {{Java, C}, {C, Java}, {PHP, Java}, {Ruby, Java}, {PHP, Ruby}}
I don't understand the Ruby as seen by PHP square
I believe it's the flying spaghetti monster
There is some complexity to that meme, but put very simply it illustrates that PHP people sometimes view Rubyists as either cultic and/or atheistic about programming religion.
{Java, Ruby} and {C, Ruby} both gave me the simultaneous "LOL" and "nailed it!" reaction. {Ruby, Java} and {Ruby, Haskell} were pretty funny too.
Yet another attempt/excuse for learning Haskell!
Great work so far. I like the organization. Any plans to release video lectures?
+1 for video.
+1 for videos. They make it much more enjoyable but it can be a lot of work :( Are you going to publish quizzes and assignments?
I'm taking this course next semester at UVa. Can't wait!
Awesome! Thanks for posting about this. I just started Erik Meijer's 13-lecture video series on Channel 9, and look forward to bolster my learning with your course.

Every slide has a secret note

Any idea how to show that on something like an iPad? Once per day to see the alt text on xkcd is already too much to bear.

> Once per day to see the alt text on xkcd is already too much to bear.

Try the mobile site, m.xkcd.com; it has a clickable "alt-text" link to reveal the alt text in-page.

You can turn on Safari's awful console in the Settings app, I think under "advanced".
first time I learned Haskell it was great; gave me a new insight on how to think differently while coding other languages.
Very nice. Was this of your own initiative or was it the department?
Thank you! Yes, this was my own initiative.
Really? A picture of a kid with Down's Syndrome wearing a Superman outfit?
Apparently I overlooked that when I found it online. The image is now modified. Thank you pointing this out.
well it does get the point across. Should he also edit out the one with a person with higher than average body fat, so that we don't risk upsetting any people with higher than average body fat?
Awesome. Learning Haskell has been on my list for a long time, and I really appreciate that both books are available for free online. Thanks!
Nice presentation. Friendly notes:

1. Ctrl+Shift+K opens the web console in Firefox, not your secret notes.

2. Please don't present naive "quicksort" in Haskell as equivalent to a real quicksort unless you're also going to prove that the cute Haskell example is as efficient in all senses as the in-place C implementation. (Good luck with that, as my American friends say.)

In regard to your second point, I completely agree. I'm considering ways to rephrase that part.
Great mobile support by the way. But regarding secret notes, although reveal.js and bootstrap looks great on mobile, there is no way that I could find to view the secret note on Android chome...
Maybe on Android 4.x, but on older devices, it's useless. The slides do not auto-fit the screen.
re 1: yes, that's where the secret notes are.
It’s beautiful. How did you create the slides?
(comment deleted)
"Nothing is evaluated unless necessary

head (sort ls)

The list will only be sorted enough to find the minimum"

This may be technically true, but is a pretty bad example with much hand waving - what exactly does it mean to be "sorted enough to find the minimum" given that Haskell uses a merge sort implementation internally?

A better example of Haskell's lazy nature (taken from the Learn You A Haskell book) would be:

take 10 (repeat 5) - it's very easy to comprehend taking the first 10 elements of an infinitely long list without needing to compute the entire list.

Yep, the "sort only to get head" trick only works fully with selection sort, where it reduces complexity from O(n^2) to O(n) (reduces to a simple max/min). But it also confers some advantage in the case of standard merge sort: the last two sorted sublists will not be merged.

Regarding "repeat", I find it pretty much awesome that it is implemented as a circular linked list with a single element, as in:

    repeat x = xs where xs = x : xs
which ensures that it will take up constant space no matter how "far" in it is evaluated.
(comment deleted)
(comment deleted)
This looks awesome. Thanks! I will definitely be following along.
Beautiful slides. :)
Nice presentation. Did you use a tool to create the slides?