News for hackers. Stuff that matters.
Re:Functional Programming Is Not Popular Because It Is Weird by makmanalp on Saturday February 27, 2016 @06:40PM (#11189012)
Hah! This is amusing.

In one of my classes freshman year, one of my favourite professors (Kathi Fisler <3) gave us an assignment where we made a silly game with an airplane that flies around and drops things. And I remember wondering how to do that without mutable state for the location of the plane, etc. Then I just remember seeing in the instructions for the assignment something like:

> write a function that takes a world and returns a new, updated world with the plane at its next location

and I just remember sitting there with my mind completely blown. Looking back at it, it doesn't seem as profound as I thought it was at the time, but maybe that's just because the novelty has worn off for me and a few years in industry have made me cynical, who knows :-)

Anyway, I think just learning to look at a problem differently I think gives you valuable insight into it and into your mind. Doesn't matter if you end up using it or not.

> I spend too much time trying to figure out how to say things as opposed to figuring out what to say.

Ha! Again, I think this is just a different approach. When I tried out haskell, it was intriguing that the modus operandi was: "think a lot about a problem, then write down a little code". I like that this is the opposite of my instinct to jump in with a solution, then kinda heuristically change it to get to code that works, and ultimately I think lead me to think a bit more and end up with clearer problem definitions and solutions.

Re:Functional Programming Is Not Popular Because It Is Weird by firebones on Sunday February 28, 2016 @02:23AM (#11190198)
Does Kathi Fisler have any online coursework? Because your experience sounds great and I'd love to be able to experience it or recreate it for my own enlightenment.
Re:Functional Programming Is Not Popular Because It Is Weird by makmanalp on Sunday February 28, 2016 @12:41PM (#11191555)
It was kinda based on How To Design Programs (http://www.htdp.org/) though to be honest I never touched the book and relied mostly on the in class instruction (which was what made this class awesome IMHO). I found the website for a newer version of the class:

http://web.cs.wpi.edu/~cs1102/a08/

and OMG! I found the assignment!

http://web.cs.wpi.edu/~cs1102/a08/Assignments/Hwk2/index.htm...

> A function update-world that consumes a world and produces a world reflecting what happens when no key is pressed

OK, not phrased quite how I remember it but I guess that's where the epiphany happened :)

I took another class with her that was programming languages, and we used Programming Languages: Application and Interpretation (https://cs.brown.edu/courses/cs173/2012/book/) and the course website (http://web.cs.wpi.edu/~cs4536/a14/)

This class also had some great epiphanies for me, but again, I think the instruction being top notch helped keep my attention going. This is more advanced stuff conceptually.