eeffbkyg
This commit is contained in:
parent
3a1da22c36
commit
fa2e6c4e08
5 changed files with 22 additions and 4 deletions
|
@ -41,4 +41,8 @@ end
|
|||
|
||||
It turns out that there are multiple ways to implement the derivation functors--- also multiple ways to implement a particular monad ---and they don't all behave the same, which means it's hard to predict whether the more-general, derived implementations are the "natural" ones that you expected to get without _ad hoc_ testing, which obviously rather defeats the point of "free".
|
||||
|
||||
[^falsehood]: Unsurprisingly, I lied. You have to buy a `Monad` first.
|
||||
On the other hand, the derivations here can be performed pretty mechanically, with little insight, by following the types in much the same way one might mechanically prove a simple proposition. So it _is_ a relatively low-effort and low-investment activity.
|
||||
|
||||
TODO: explain functors and `with type`.
|
||||
|
||||
[^falsehood]: Unsurprisingly, that's a lie. You have to buy a `Monad` first.
|
|
@ -42,7 +42,7 @@ Let us finally now consider `bind`. `bind` is the driving force behind monads, p
|
|||
|
||||
[^physical]: Of course, we say that `list` _simulates_ nondeterminism for the same reason that we say physical computers simulate turning machines: both are constrained by the resource limitations of physical reality and thus strictly weaker than the theoretical devices they seem to emulate.
|
||||
|
||||
[^choice]: A "choice" is between two or more options; if there's just one option, you don't have a choice.
|
||||
[^choice]: A choice is between two or more options; if there's just one option, `x`, there's no choice.
|
||||
|
||||
[^alpha]: Pronounced "alpha tee".
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue