diff --git a/short_lengths.hs b/short_lengths.hs new file mode 100644 index 0000000..3668a85 --- /dev/null +++ b/short_lengths.hs @@ -0,0 +1,11 @@ +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))