Other Elm solutions.
module SumOfMultiples exposing (sumOfMultiples)
sumOfMultiples : List Int -> Int -> Int
sumOfMultiples divisors limit =
let
nums =
List.range 1 (limit - 1)
isDivisibleBy divs i =
List.any (\d -> modBy d i == 0) divs
in
nums
|> List.filter (isDivisibleBy divisors)
|> List.foldl (+) 0
Other Roc solutions.
module [sumOfMultiples]
sumOfMultiples : List U64, U64 -> U64
sumOfMultiples = \factors, limit ->
allMultiples = List.joinMap factors (\factor -> multiplesLessThan factor limit)
allMultiples |> Set.fromList |> Set.toList |> List.sum
multiplesLessThan = \factor, limit ->
if factor == 0 then
[0]
else
List.range { start: At factor, end: Before limit, step: factor }