Module
Record.Studio.Map
- Package
- purescript-heterogeneous-extrablatt
- Repository
- sigma-andex/purescript-heterogeneous-extrablatt
#MapRecord Source
data MapRecord a b
Constructors
MapRecord (a -> b)
Instances
(IsSymbol sym, Lacks sym rb, Cons sym b rb rc) => FoldingWithIndex (MapRecord a b) (Proxy sym) (Builder (Record ra) (Record rb)) a (Builder (Record ra) (Record rc))
(IsSymbol sym, Lacks sym rb, RowToList x xRL, Cons sym (Record y) rb rc, FoldlRecord (MapRecord a b) (Builder (Record ()) (Record ())) xRL x (Builder (Record ()) (Record y))) => FoldingWithIndex (MapRecord a b) (Proxy sym) (Builder (Record ra) (Record rb)) (Record x) (Builder (Record ra) (Record rc))
(IsSymbol sym, Lacks sym rb, Cons sym x rb rc) => FoldingWithIndex (MapRecord a b) (Proxy sym) (Builder (Record ra) (Record rb)) x (Builder (Record ra) (Record rc))
#mapRecord Source
mapRecord :: forall a b rin rout. HFoldlWithIndex (MapRecord a b) (Builder (Record ()) (Record ())) (Record rin) (Builder (Record ()) (Record rout)) => (a -> b) -> Record rin -> Record rout
Recursively maps a record using a function f.
let
f :: Int -> String
f i = show (i + 1)
mapRecord f { a : { b : 10, c : { d: 20, e : Just "hello" }}, f : 30 }
-- { a : { b : "11", c : { d: "21", e : Just "hello" }, f : "31" }