cm20256-exam/sum_digits.hs

16 lines
437 B
Haskell
Raw Normal View History

2024-05-08 10:51:04 +01:00
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))