gpt4 book ai didi

haskell - Control.Lens 中的 Market 这个名称背后的原因是什么?

转载 作者:行者123 更新时间:2023-12-02 21:03:19 24 4
gpt4 key购买 nike

Edward Kmett's optics library; Control.Lens定义了大量的类型。

其中大多数都有相对不言自明的名称,例如 TraversalFold

它还定义了一些名称不太明显的类型,例如 Bazaar

从集市页面:

a.k.a. indexed Cartesian store comonad, indexed Kleene store comonad, or an indexed FunList.

...

Mnemonically, a Bazaar holds many stores and you can easily add more.

我无法弄清楚类型名称 Market 背后的原因。我认为这在某种程度上也与商店单子(monad)/共单子(monad)有关?这是正确的吗?

最佳答案

我不了解真实的历史,但我怀疑以下内容。让我们这样排列类型:

Market' a s t: Market (a -> t) (s -> Either t a)
Store a t: Store (a -> t) a

所以:a Market a s t有点像 Store a t 的集合s 索引为 s 。事实上,如果您选择特定的 s ,然后是你的Market' a s t成为以下两件事之一:

  1. s -> Either t a返回标记为 Right 的内容,所以你有一个 a -> t和一个a 。这与 Store a t 完全相同.
  2. s -> Either t a返回标记为 Left 的内容。您已经走到商店的大部分路了:您有一个 a -> t ,但不是具有特定索引 a该功能可以应用到,您可以直接将手放在t上就会产生这样的结果。 (注意:我认为没有任何理由相信 t 必然位于 a -> t 的同域中。我只是给出名称的直觉,而不是行为法则。)

我认为没关系:现实世界的市场通常也有与商店相似但不完全相同的东西。 =)

关于haskell - Control.Lens 中的 Market 这个名称背后的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57553042/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com