I want to convert this line of code map (^?! ix 0) [[0, 1], [4, 5], [9, 1]] to entirely use lenses, so something like [[0, 1], [4, 5], [9, 1]] & each . ix 0. However, the types don't match up. What is the correct way to do this?
Use folded:
Prelude Control.Lens> [[0, 1], [4, 5], [9, 1]] ^.. folded . ix 0
[0,4,9]
Works on any Foldable.
Also, if you plan to always extract the first element, perhaps it would be clearer to use the _head traversal from Control.Lens.Cons instead of ix.
[[0, 1], [4, 5], [9, 1]] ^.. folded . _head
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With