aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Pankoff <ccntrq@screenri.de>2022-05-05 11:00:43 +0200
committerAlexander Pankoff <ccntrq@screenri.de>2022-05-05 11:00:43 +0200
commita5427722c6ccca6d7fa59df29f42f39a4f519389 (patch)
tree7c061db47d1e0d0adaf26adbd3709928c140861a
parent6aa6f29bde36433f239d0e9110af83bda78f1299 (diff)
downloadperlweeklychallenge-club-a5427722c6ccca6d7fa59df29f42f39a4f519389.tar.gz
perlweeklychallenge-club-a5427722c6ccca6d7fa59df29f42f39a4f519389.tar.bz2
perlweeklychallenge-club-a5427722c6ccca6d7fa59df29f42f39a4f519389.zip
Extract untilOneLeft
-rw-r--r--challenge-163/alexander-pankoff/haskell/ch-2.hs9
1 files changed, 6 insertions, 3 deletions
diff --git a/challenge-163/alexander-pankoff/haskell/ch-2.hs b/challenge-163/alexander-pankoff/haskell/ch-2.hs
index 7368d8c52b..25828e64d1 100644
--- a/challenge-163/alexander-pankoff/haskell/ch-2.hs
+++ b/challenge-163/alexander-pankoff/haskell/ch-2.hs
@@ -4,6 +4,9 @@ main :: IO ()
main = print $ summations [1 .. 5]
summations :: [Int] -> Int
-summations [] = 0
-summations [x] = x
-summations (_ : xs) = summations $ scanl1 (+) xs \ No newline at end of file
+summations = untilOneLeft (scanl1 (+) . tail) 0
+
+untilOneLeft :: ([a] -> [a]) -> a -> [a] -> a
+untilOneLeft _ d [] = d
+untilOneLeft _ _ [a] = a
+untilOneLeft aa d as = untilOneLeft aa d (aa as) \ No newline at end of file