【发布时间】:2020-11-14 08:59:52
【问题描述】:
我正在尝试使用 Elixir 解决经典的 fizzbuzz 问题。我找到了几种不同的方法来解决这个问题,但最好的方法是:
fizzbuzz = fn
(0, 0, _) -> "FizzBuzz"
(0, _, _) -> "Fizz"
(_, 0, _) -> "Buzz"
(_, _, a) -> a
end
fb = fn n -> fizzbuzz.(rem(n, 3), rem(n, 5), n) end
fb.(10)
我现在的问题是我想调用 fb 匿名函数 100 次。在 ruby 中,它看起来像这样:
100.times do |i|
fb.(i)
end
显然,这是行不通的,因为您不能在 Ruby 中调用这样的匿名函数。但我希望你能得到这张照片。如何在 Elixir 中实现这一点?
【问题讨论】:
-
旁注:您显然可以将 ruby 中的 lambda 称为
fb.(i),它绝对是fb.call(i)的合法语法糖。