к
Size: a a a
JS
KV
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"]
fromBCtoC f (Ctx a b c) = Ctx a b (f b c)
KV
JS
KV
KV
struct & updateFieldDepengingOnOtherFields fieldOne fieldTwo fieldRes (\one two ->...)
Ещё бы хорошо если б эта функция поливариадичная былаJS
KV
KV
JS
KV
JS
KV
JS
JS
& traverse . imapped %@~ f
JS