例如,要返回第 10,000 个质数,我可以编写:
require 'prime'
Prime.first(10000).last #=> 104729
但是创建一个巨大的中间数组,只是为了检索它的最后一个元素感觉有点麻烦。
鉴于 Ruby 是一种如此优雅的语言,我本来期望的是这样的:
Prime.at(9999) #=> 104729
但没有Enumerable#at
.
上述解决方法是有意的还是有更直接的方法来获取n的第一个元素Enumerable
?
我能想到的最接近假设的事情at
方法是drop
,它会跳过指定数量的元素。但它会尝试返回一个实际的数组,因此如果您使用无限序列,则需要将其与惰性数组结合起来,例如
Prime.lazy.drop(9999).first
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)