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