3 ms·
The author seems to be getting at something very similar to the notion of "bidirectional programming" [1][2]. It's a concept that's closely related to the indis
by ShaneWilton 11y ago
The author seems to be getting at something very similar to the notion of "bidirectional programming" [1][2]. It's a concept that's closely related to the indispensable "lens" library in Haskell [3].
[1] http://www.cis.upenn.edu/~bcpierce/papers/lenses-etapsslides.pdf http://www.cis.upenn.edu/~bcpierce/papers/lenses-etapsslides...
[2] http://www.janis-voigtlaender.eu/papers/ThreeComplementaryApproachesToBidirectionalProgramming.pdf http://www.janis-voigtlaender.eu/papers/ThreeComplementaryAp...
[3] https://github.com/ekmett/lens https://github.com/ekmett/lens
- AdieuToLogic 11y agoWhile I definitely see your point of the concept being closely related to lenses, a key differentiator to me is the incorporation of invoking a functor with the "read part" of a lens and then submitting the result to the "write part." It's almost like a marriage of Applicative Functor[1] with Lens in a squint-your-eyes-and-tilt-your-head kind of way. 1 - https://wiki.haskell.org/Applicative_functor https://wiki.haskell.org/Applicative_functor