gpt4 book ai didi

haskell - 为什么我们需要 Control.Lens.Reified?

转载 作者:行者123 更新时间:2023-12-02 06:39:38 29 4
gpt4 key购买 nike

为什么我们需要Control.Lens.Reified ?是否有某种原因导致我无法将 Lens 直接放入容器中? reify 到底是什么意思?

最佳答案

我们需要具体化的镜头,因为 Haskell 的类型系统是预测性的。我不知道这到底意味着什么的技术细节,但它禁止像

这样的类型
[Lens s t a b]

出于某些目的,使用是可以接受的

Functor f => [(a -> f b) -> s -> f t]

相反,但是当你接触到它时,你不会得到一个Lens;你会得到一个专门针对某个仿函数或另一个仿函数的LensLikeReifiedBlah 新类型让您能够保持完整的多态性。

在操作上,[ReifiedLens s t a b] 是一个函数列表,每个函数都采用一个 Functor f 字典,而 forall f 。 Functor f => [LensLike f s t a b] 是一个接受 Functor f 字典并返回列表的函数。

至于“具体化”的含义,好吧,字典会说一些东西,这似乎可以转化为 Haskell 中相当令人惊叹的各种特定含义。所以对此不予置评。

关于haskell - 为什么我们需要 Control.Lens.Reified?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33088563/

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