From aeefdd269576bf3d3e97269cf5ed2b21584ab0ec Mon Sep 17 00:00:00 2001 From: Pal Kerecsenyi Date: Wed, 8 May 2024 10:51:04 +0100 Subject: [PATCH] Add sum digits --- sum_digits.hs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 sum_digits.hs diff --git a/sum_digits.hs b/sum_digits.hs new file mode 100644 index 0000000..443fd08 --- /dev/null +++ b/sum_digits.hs @@ -0,0 +1,15 @@ +import Data.Char (digitToInt, isDigit) + +sumDigitsRecur :: String -> Int +sumDigitsRecur [] = 0 +sumDigitsRecur (x : xs) = + if isDigit x + then + digitToInt x + sumDigitsRecur xs + else sumDigitsRecur xs + +sumDigitsListComp :: String -> Int +sumDigitsListComp i = sum [if isDigit x then digitToInt x else 0 | x <- i] + +sumDigitsMapFilterFold :: String -> Int +sumDigitsMapFilterFold i = foldr (+) 0 (map digitToInt (filter isDigit i))