diff options
| author | Jan Sucan <jan@jansucan.com> | 2023-03-21 21:16:01 +0100 |
|---|---|---|
| committer | Jan Sucan <jan@jansucan.com> | 2023-03-21 21:16:01 +0100 |
| commit | ca95e3929826664716cecc73b4efd0c5ce766ccf (patch) | |
| tree | f8379603edc52ae2bfc6bb6749e8e00473ed41de /ch04/4_b_6.hs | |
| parent | 0d0c3870d945f07e93337c2c2941d85106f807d6 (diff) | |
4_b_5 and 4_b_6: Add solutions
Diffstat (limited to 'ch04/4_b_6.hs')
| -rw-r--r-- | ch04/4_b_6.hs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/ch04/4_b_6.hs b/ch04/4_b_6.hs new file mode 100644 index 0000000..91604d4 --- /dev/null +++ b/ch04/4_b_6.hs @@ -0,0 +1,30 @@ +-- 1. The Prelude function concat concatenates a list of lists into a single list +-- and has the following type: +-- +-- -- file: ch04/ch04.exercises.hs +-- concat :: [[a]] -> [a] +-- +-- 2. Write your own definition of concat using foldr. + +myConcat :: [[a]] -> [a] +myConcat xs = foldr (++) [] xs + +-- ghci> :l 4_b_6.hs +-- [1 of 1] Compiling Main ( 4_b_6.hs, interpreted ) +-- Ok, one module loaded. +-- ghci> concat [] +-- [] +-- ghci> concat [[]] +-- [] +-- ghci> concat [[1]] +-- [1] +-- ghci> concat [[1], [2,3], [4,5,6]] +-- [1,2,3,4,5,6] +-- ghci> myConcat [] +-- [] +-- ghci> myConcat [[]] +-- [] +-- ghci> myConcat [[1]] +-- [1] +-- ghci> myConcat [[1], [2,3], [4,5,6]] +-- [1,2,3,4,5,6] |
