16 lines
437 B
Haskell
16 lines
437 B
Haskell
|
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))
|