We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 168cf86 commit 9c1b7f4Copy full SHA for 9c1b7f4
haskell/Setter.hs
@@ -0,0 +1,25 @@
1
+module Main (main) where
2
+
3
+data Record = Record
4
+ { recordA :: String
5
+ , recordB :: String
6
+ , recordC :: String
7
+ } deriving (Show)
8
9
+setter :: String -> String -> Record -> Record
10
+setter "a" v r = r { recordA = v }
11
+setter "b" v r = r { recordB = v }
12
+setter "c" v r = r { recordC = v }
13
+setter _ _ r = r
14
15
+xs :: [(String, String)]
16
+xs =
17
+ [ ("a", "damn")
18
+ , ("c", "fib")
19
+ , ("g", "derp")
20
+ , ("b", "bar")
21
+ , ("a", "foo")
22
+ ]
23
24
+main :: IO ()
25
+main = print $ foldr (\(k, v) r -> setter k v r) (Record "" "" "") xs
0 commit comments