JS
[(8,"a"), (3,"b")] &Как бы сделать с
traversed %~ (f :: (Int, String) -> (Int, String))
f :: Int -> String -> String, поменяв то, что слева от %~, а не справа, или само %~uncurry fSize: a a a
JS
[(8,"a"), (3,"b")] &Как бы сделать с
traversed %~ (f :: (Int, String) -> (Int, String))
f :: Int -> String -> String, поменяв то, что слева от %~, а не справа, или само %~uncurry fк
[(8,"a"), (3,"b")] &Как бы сделать с
traversed %~ (f :: (Int, String) -> (Int, String))
f :: Int -> String -> String, поменяв то, что слева от %~, а не справа, или само %~KV
f :: Int -> String -> Stringg (i,s) = (i, f i s) и воткнуть тудаЗП
uncurry (liftA2 (.) (,) f) :DKV
KV
fJS
f :: Int -> String -> Stringg (i,s) = (i, f i s) и воткнуть тудаtraverse %~ imap fJS
fKV
data Context a b c = ContextДаже можно не две линзы тут указать, а три, чтобы в третью складывать результат функции от первых двух, как-то так
{ fieldA :: a
, fieldB :: b
, fieldC :: c }
> [Context True 2 "heck"] & (_ #fieldB #fieldC) %~ replicate
Context True 2 ["heck", "heck"]
KV
JS
traverse %~ imap fKV
JS
data Context a b c = ContextДаже можно не две линзы тут указать, а три, чтобы в третью складывать результат функции от первых двух, как-то так
{ fieldA :: a
, fieldB :: b
, fieldC :: c }
> [Context True 2 "heck"] & (_ #fieldB #fieldC) %~ replicate
Context True 2 ["heck", "heck"]
к
KV
JS
JS