3 ms·
Reader is similar, but I wouldn't say equivalent, because only those things working in the Reader can use that environment. For example, when you have project A
by jolmg 6y ago
Reader is similar, but I wouldn't say equivalent, because only those things working in the Reader can use that environment. For example, when you have project A using project B using project C, you can't define a putStrLn such that project C can use it and be able to override its output stream from project A, while keeping B completely ignorant of that ability of putStrLn or that C even uses putStrLn.
Reader is like a middle-ground between dynamic-scoping and explicit passing of a context argument around as you would in a statically-scoped language.
- catern 6y agoReader is like implicit parameters: dynamic scoping with static types. https://dl.acm.org/doi/10.1145/325694.325708 https://dl.acm.org/doi/10.1145/325694.325708
- jolmg 6y agoI know what Reader is, but my point still stands.
- catern 6y agoOkay... I wasn't suggesting you don't know what Reader is... you said: >Reader is like a middle-ground between dynamic-scoping and explicit passing of a context argument around I just wanted to point out that the-thing-which-Reader-is, is sometimes called "implicit parameters", and there are papers written about it.