如何打印前10个自然数,其正方形可被5整除?

时间:2015-04-02 09:46:53

标签: ruby functional-programming

我正在看这个幻灯片: http://www.slideshare.net/GeisonFlores/ruby-functional-programming

幻灯片24显示,我可以通过这样做找到前10个自然数,其正方形可被5整除:

Integer::natural.select{ |x| x**2 % 5 == 0}.take(10).inject(:+)

我收到错误:找不到Integer的'natural'类型。 我曾尝试使用ruby 1.9.3和2.2,似乎无法运行此LOC。

有人能指出我如何纠正这个问题吗? 我是FP的新手。

1 个答案:

答案 0 :(得分:1)

其他幻灯片上定义了

Integer::natural。在执行select

之前运行此代码
class Integer
 def self.natural
   Enumerator.new do |yielder|
    (1..1.0/0).each do |number|
     yielder.yield number
    end
   end
 end
end