mike + functional   9

Locked doors, headaches, and intellectual need | Affording Play
“Consider Dan Meyer’s question for math educators: if math is the aspirin, then how do you create the headache?

Think of yourself as someone who sells aspirin. And realize that the best customer for your aspirin is someone who is in pain. Not a lot of pain. Not a migraine. Just a little.

One of the worst things you can do is force people who don’t feel pain to take your aspirin. They may oblige you if you have some particular kind of authority in their lives but that aspirin will feel pointless. It’ll undermine their respect for medicine in general.”

“Monads are a solution to a specific problem: the problem of repetitive code. If you write enough code in a functional programming language, you start to notice that you’re writing a lot of suspiciously similar code to solve a bunch of superficially different problems. Wouldn’t it be nice if you could just write this code once and then reuse it, instead of rewriting it slightly differently every time? I’m omitting a lot of detail here, but this is effectively what monads allow you to do.”

“By definition, the chief difference between experienced and inexperienced functional programmers is that experienced functional programmers have written tons of code in functional languages. They’ve all encountered repetition and sought solutions to it. In other words, they’ve felt the headache for which monads are the aspirin.

Beginners, on the other hand, haven’t written nearly as much functional code. They might not have noticed any recurring patterns yet; if they have, the repetition doesn’t yet bother them. The headache just isn’t there.

This is why it’s so hard to explain monads to beginners, especially with canned tutorials that try to explain what monads are without spending too much time on what they’re for. Monads are the solution to a problem that beginners haven’t yet experienced for themselves; and, as a result, they feel pointless, like something out of high-school math.

Remember: One of the worst things you can do is force people who don’t feel pain to take your aspirin. Likewise, I suspect that trying to “teach monads” to novice functional programmers who don’t yet understand the need for monads is likely to do more harm than good, creating further unnecessary confusion and perpetuating the myth that monads are intrinsically hard to understand.”
functional  maths  education 
10 weeks ago by mike
What's Functional Programming All About?
Now that we've looked at a few common misconceptions of what FP is, let's look at what the core of FP actually is (according to me) in contrast to "imperative" programming, using Michael Chu's Classic Tiramisu:
functional  programming  recipe 
january 2017 by mike
Why Do Monads Matter? | Sententia cdsmithus
These are the kinds of questions I begin with. My goal is to demonstrate for you, with details and examples:

Where category-based intuition and ideas, and monads in particular, come from in computer programming.
Why the future of programming does lie in these ideas, and their omission in today’s mainstream languages has cost us dearly.
What the state of the art looks like in applying category-based ideas to problems in computer programming.
haskell  functional  programming 
december 2016 by mike
DS12 | Overview
🤔 "Python and R are the legacy languages of data science; however, both were designed during the single processor era and are beginning to show their limitations. That’s why we’ve chosen to teach Scala, DataScience’s programming language of choice. Despite being embraced by companies like Twitter, Netflix, and LinkedIn, Scala is largely perceived as “too difficult” for the average data scientist."
functional  datascience  losangeles  education 
april 2016 by mike

Copy this bookmark: