Tôi cần một chức năng như <<%~
mà sẽ hành động với Traversal
s trong thời trang tương tự như ^?
, như thế này:Analog của `<<% ~` không đòi hỏi monoid cho Traversal
(<<?%~) :: Traversal s t a b -> (a -> b) -> s -> (Maybe a, t)
> ix 0 <<?%~ succ $ [1,2]
(Just 1,[2,2])
> ix 1 <<?%~ succ $ [1,2]
(Just 2,[1,3])
> ix 2 <<?%~ succ $ [1,2]
(Nothing,[1,2])
Làm thế nào tôi nên thực hiện nó? Cách rõ ràng là áp dụng riêng biệt ^?
và %~
, nhưng tôi muốn một giải pháp trong một lần.
Tôi đã thay đổi khung xung quanh giải pháp của bạn khá mạnh. Vui lòng hoàn nguyên các thay đổi nếu bạn không thích chúng. – duplode
@duplode cảm ơn. Buồn tôi không thể upvote câu trả lời :) – modular