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))