cm20256-exam/short_lengths.hs
2024-05-08 10:55:59 +01:00

12 lines
435 B
Haskell

shortLengthsRecur :: [String] -> Int
shortLengthsRecur [] = 0
shortLengthsRecur (x : xs) = if l <= 5 then l + shortLengthsRecur xs else shortLengthsRecur xs
where
l = length x
shortLengthsListComp :: [String] -> Int
shortLengthsListComp i = sum [if length x <= 5 then length x else 0 | x <- i]
shortLengthsMapFilterFold :: [String] -> Int
shortLengthsMapFilterFold i = foldr (+) 0 (map length (filter (\e -> length e <= 5) i))