【发布时间】:2017-11-27 09:56:00
【问题描述】:
我正在编写一个看起来应该可以正常工作的函数。但我认为我错过了灵丹妙药的核心。这是我想要做的:
defmodule ProjectEuler do
def solve(limit) do
multiple_of_3_or_5? = fn(n) -> (rem(n, 3) == 0 || rem(n, 5) == 0) end
for(n <- limit, multiple_of_3_or_5?.(n), do: n) |> Enum.reduce(0, fn(x, y) -> (x + y) end)
end
def print do
IO.puts solve(1000)
end
end
这是欧拉计划的第一个问题。我不明白为什么这不返回有效数字?相反,我收到此错误
** (Protocol.UndefinedError) protocol Enumerable not implemented for 1000
我在这里做错了什么?
【问题讨论】:
标签: elixir