Haskell 让这个'getIndex'成为可能吗?
是否可以制作以下类型的光学元件:Haskell 让这个'getIndex'成为可能吗?,haskell,haskell-lens,Haskell,Haskell Lens,是否可以制作以下类型的光学元件: getIndex :: Lens.IndexedGetter i a i 我找不到一个现有的索引,在尝试编写一个索引失败的过程中,我感觉它无法完成,但如果是这样的话,我想知道原因的解释。索引是由getter任意定义的,因此没有通用的方法来创建索引 索引器i s i通过以下双射同构于s->(i,i): ito :: (s -> (i, a)) -> IndexedGetter i s a iview :: IndexedGetter i s a
getIndex :: Lens.IndexedGetter i a i
我找不到一个现有的索引,在尝试编写一个索引失败的过程中,我感觉它无法完成,但如果是这样的话,我想知道原因的解释。索引是由getter任意定义的,因此没有通用的方法来创建索引
索引器i s i
通过以下双射同构于s->(i,i)
:
ito :: (s -> (i, a)) -> IndexedGetter i s a
iview :: IndexedGetter i s a -> s -> (i, a)
forall s i。IndexedGetter i s i
(完全量化的getIndex
)将与所有s i的同构。s->(i,i)
,但那没有人居住(这意味着()->(Void,Void)
与s~()
和i~Void
)