This is a Ruby tree! It shows every object from the Ruby Programming Language in a tree format.

combination

        # Array.combination

(from ruby core)
---
    array.combination(n) {|element| ... } -> self
    array.combination(n) -> new_enumerator

---

Calls the block, if given, with combinations of elements of `self`;
returns `self`. The order of combinations is indeterminate.

When a block and an in-range positive Integer argument `n` (`0 < n <=
self.size`) are given, calls the block with all `n`-tuple combinations
of `self`.

Example:
    a = [0, 1, 2]
    a.combination(2) {|combination| p combination }

Output:
    [0, 1]
    [0, 2]
    [1, 2]

Another example:
    a = [0, 1, 2]
    a.combination(3) {|combination| p combination }

Output:
    [0, 1, 2]

When `n` is zero, calls the block once with a new empty Array:
    a = [0, 1, 2]
    a1 = a.combination(0) {|combination| p combination }

Output:
    []

When `n` is out of range (negative or larger than `self.size`), does not
call the block:
    a = [0, 1, 2]
    a.combination(-1) {|combination| fail 'Cannot happen' }
    a.combination(4) {|combination| fail 'Cannot happen' }

Returns a new Enumerator if no block given:
    a = [0, 1, 2]
    a.combination(2) # => #<Enumerator: [0, 1, 2]:combination(2)>



      

This is MURDOC! A Ruby documentation browser inspired by Smalltalk-80. It allows you to learn about Ruby by browsing through its class hierarchies, and see any of its methods.