mirror of
https://github.com/bitemyapp/learnhaskell.git
synced 2024-11-03 23:15:18 +00:00
Join for Reader
This commit is contained in:
parent
bed7387341
commit
77d4cea6d5
22
dialogues.md
22
dialogues.md
@ -1097,3 +1097,25 @@ to produce any part of their result).
|
||||
23:34 < Cale> So for instance, when you're repeatedly updating the contents of an IORef, or recursively updating an
|
||||
accumulating parameter without matching on it, you want to be careful there.
|
||||
```
|
||||
|
||||
## Join for Reader
|
||||
|
||||
```
|
||||
18:51 < OscarZ> about join... im wondering about join (+) 7 = 14
|
||||
19:14 < pjdelport> OscarZ: join for Reader becomes even more Intuitive when you pronounce Reader e a as "function
|
||||
from an environment e to a"
|
||||
19:15 < pjdelport> Then "Reader e (Reader e a)" is just "function from an environment e to function from an
|
||||
environment e to a"
|
||||
19:16 < pjdelport> And joining means turning that into just one "function from an environment e to a"
|
||||
19:16 < pjdelport> And saying it like that should (hopefully) make the implementation and what it does more obvious
|
||||
:)
|
||||
19:23 < pjdelport> I still think just pondering "type Reader e a = e -> a" is a great way to to get that "a ha"
|
||||
moment
|
||||
```
|
||||
|
||||
```haskell
|
||||
λ> join (+) 7
|
||||
14
|
||||
λ> join (*) 7
|
||||
49
|
||||
```
|
||||
|
Loading…
Reference in New Issue
Block a user