ruby中的ruby1.9方法1.8.6

是否有gem或库来获得ruby 1.9方法

[1, 2, 3].combination(2) [1, 2, 3].permutation(2) [1, 2, 3].product([1, 2, 3]) [1, 2, 3, 4, 5].cycle 

这正是我的gembackports的目标。

它在纯Ruby中实现了Ruby 1.8.7的所有新function以及许多Ruby 1.9.x和2.0。 这当然包括#combination#permutation#product#cycle

你可以,例如:

 require 'backports/1.8.7/array/combination' [1, 2, 3].combination(2) # => works, even in Ruby 1.8.6 

backports的实现传递大多数RubySpecs (对于facets来说不是这种情况),以保证不存在兼容性问题。

您可以尝试1.8.x版本的Ruby Facets( http://facets.rubyforge.org/ )。 Facets已经变得有点混乱(在网站上注释404),但我安装了旧版本的gem(1.8.54),其中包含一些这些标准前的更改。

 > gem install --version=1.8.54 facets 

然后:

 gem 'facets', "~>1.8" require 'enumerator' require 'facets/core/enumerable/cartesian_product' require 'facets/core/enumerable/permutation' require 'facets/core/enumerable/each_combination' [1, 2, 3].enum_for(:each_combination,2).to_a # note - only each form is available [1, 2, 3].permutation(2) [1, 2, 3].cartesian_product([1, 2, 3]) # note - rename # Can't find .cycle equivalent after a quick search, maybe nothing there 

您可能希望为这些方法中的某些方法添加别名以获得代码兼容性。

对不起,它不是很好。