4 ms·
This is tangential to your main point, but: > did it in a way that obviates needing to know what a monad is, concern oneself with functional purity, Caring ab
by supergarfield 9y ago
This is tangential to your main point, but:
> did it in a way that obviates needing to know what a monad is, concern oneself with functional purity,
Caring about both of these things in the context of functional programming essentially dates from the early 1990s. According to Wikipedia (I have no better source, but it matches what I know of pre-1990s functional languages),
> Eugenio Moggi first described the general use of monads to structure programs in 1991.
Functional programming existed before then. Scheme, an early functional language, is from the 1970s. It has basically all the FP idioms that you have in Python, is not pure, is dynamically typed, and the doc never once references monads.
I'd actually say the definition of FP has shifted towards pure, category-theory oriented languages, but "traditionally functional stuff" definitely doesn't include monads.
- coldtea 9y ago>Functional programming existed before then [1991]. Scheme, an early functional language, is from the 1970s. Lisp is even older, as was touted as the de facto functional language since forever. And earlier MLs didn't have monads either. And of course, just because Moggi described monads in 1991, it doesn't mean it didn't take over a decade for them to make any kind of significant dent. (Assuming that they have made much of a dent today, which outside the world of Haskell, their explicit (as opposed to implicit) use is close to 0, anyway).
- willtim 9y agoThe problem with "traditionally functional stuff" was that one could only use functional programming for a subset of problems. Monads allow Haskell programmers to use FP to solve problems involving IO, mutation and effects. This is not redefining FP, it is extending it to a wider class of problems.