Joe*_*Joe 8 haskell terminology lenses haskell-lens
爱德华·克梅特(Edward Kmett)的光学图书馆;Control.Lens定义了大量类型。
其中大多数具有相对自我解释的名称,例如Traversal和Fold。
它还定义了一些名称不那么明显的类型,例如Bazaar
在“义卖市场”页面上:
aka索引的笛卡尔商店comonad,索引的Kleene商店comonad或索引的FunList。
...
通常,集市上有很多商店,您可以轻松添加更多。
我无法弄清楚Market类型名称背后的原因。我认为这在某种程度上也与商店monads / comonads有关?它是否正确?
我不了解真实的历史,但我怀疑以下情况。让我们以这种方式排列类型:
Market' a s t: Market (a -> t) (s -> Either t a)
Store a t: Store (a -> t) a
Run Code Online (Sandbox Code Playgroud)
所以:a Market a s t有点像Store a t由索引的s 的集合s。确实,如果您选择特定的s,那么您Market' a s t将成为以下两件事之一:
s -> Either t a事被贴标的回报Right,让你有一个a -> t和a。这与完全相同Store a t。s -> Either t a回报的事情标记的Left。您已经大部分时间进入了商店:您拥有一个a -> t,但是a您没有直接使用可以应用该功能的特定索引,而是直接使用了t它。(注意,我看不出有任何理由相信t必然是的共同域a -> t。我只是对名称进行了直观的了解,而不是行为定律。)我认为这是可以的:现实世界中的市场上通常也有类似但不完全相同的商店。=)
| 归档时间: |
|
| 查看次数: |
157 次 |
| 最近记录: |