Sha256: a8627f0109fc35492d935e06fa8eb51154098bf2fb8a77eb51c4928b2963620e

Contents?: true

Size: 308 Bytes

Versions: 9

Compression:

Stored size: 308 Bytes

Contents

# encoding: UTF-8

# Code by Brian Schröäer
# source: http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/151857
#
def cartprod(base, *others)
  return base.map { |a| [a] } if others.empty?
  others = cartprod(*others)
  base.inject([]) { | r, a | others.inject(r) { | r, b | r << ([a,*b]) } }
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
cartesian-0.6.7 etc/recursive.rb
cartesian-0.6.6 etc/recursive.rb
cartesian-0.6.5 etc/recursive.rb
cartesian-0.6.4 etc/recursive.rb
cartesian-0.6.3 etc/recursive.rb
cartesian-0.6.2 etc/recursive.rb
cartesian-0.6.0 lib/recursive.rb
cartesian-0.5.3 lib/recursive.rb
cartesian-0.5.2 lib/recursive.rb