gpt4 book ai didi

haskell - Haskell的Lens库中ix和element有什么区别

转载 作者:行者123 更新时间:2023-12-03 15:10:01 26 4
gpt4 key购买 nike

在 Haskell 的镜头库中,ixelement两者都可以使用 Int ,例如在某个索引处读取或写入列表元素,如下所示

ghci> [1..10] ^? ix 4
Just 5
ghci> [1..10] & ix 4 .~ 1
[1,2,3,4,1,6,7,8,9,10]

同样:
ghci> [1..10] ^? element 4
Just 5
ghci> [1..10] & element 4 .~ 1
[1,2,3,4,1,6,7,8,9,10]
element 和有什么区别和 ix ?

最佳答案

ix您不仅可以按数字索引,还可以按例如索引在 map 中键入。 element Traverse 中的索引命令。

λ> let m = Map.fromList [("foo", 'f'), ("bar", 'b')]
λ> m ^? ix "foo"
Just 'f'

λ> m ^? element 0 -- Map is ordered container!
Just 'b'

例如,差异更加明显。 IntMap
λ> let im = IntMap.fromList [(1, "one"), (2, "two")]
λ> im ^? ix 1
Just "one"
λ> im ^? element 1
Just "two"

关于haskell - Haskell的Lens库中ix和element有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28086459/

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