Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 镜头-traverseInit怎么了?_Haskell_Haskell Lens - Fatal编程技术网

Haskell 镜头-traverseInit怎么了?

Haskell 镜头-traverseInit怎么了?,haskell,haskell-lens,Haskell,Haskell Lens,在早期版本中,有一个函数transverseInit,用于操作列表的各个部分。它已经被删除了,我想现在有一个替代方案,但我不能完全找到它 我会怎么做 >>> traverseInit +~ 1 $ [1,2,3] [2,3,3] traverseInit被更通用的from替换,因此现在它可以与任何类似序列的类型一起工作,从而允许访问其右端 ghci> [1,2,3] & _init.traverse +~ 1 [2,3,3] 请注意,\u init返回一个遍历

在早期版本中,有一个函数
transverseInit
,用于操作列表的各个部分。它已经被删除了,我想现在有一个替代方案,但我不能完全找到它

我会怎么做

>>> traverseInit +~ 1 $ [1,2,3]
[2,3,3]

traverseInit
被更通用的from替换,因此现在它可以与任何类似序列的类型一起工作,从而允许访问其右端

ghci> [1,2,3] & _init.traverse +~ 1
[2,3,3]
请注意,
\u init
返回一个
遍历的
,而不是
遍历的
,允许您替换整个子列表,可能会更改其长度。在这个例子中,我必须再次遍历
以查看元素。(
\u init
恰好是一个仿射遍历,这意味着它永远不会返回多个子列表,但在
lens
的词汇表中无法表达。)

Control.Lens.Cons
包括对列表的类似遍历,以及对列表和的遍历