Class: Set

Inherits:
Object show all
Defined in:
lib/egison/matcher.rb

Class Method Summary collapse

Class Method Details

.uncons(val) ⇒ Object



80
81
82
83
84
85
86
87
# File 'lib/egison/matcher.rb', line 80

def uncons(val)
  accept_array_only(val)
  rets = val.map {|x|
    val2 = val.clone
    [x, val2]
  }
  rets
end

.unjoin(val) ⇒ Object



88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/egison/matcher.rb', line 88

def unjoin(val)
  accept_array_only(val)
  val2 = val.clone
  xs = []
  ys = val2.clone
  rets = [[xs, ys]]
  if !val2.empty? then
    x = val2.shift
    ys2 = val2.clone
    rets2 = unjoin(ys2)
    rets = (rets2.map {|xs2, _| [xs2, ys]}) + (rets2.map {|xs2, ys2| [[x]+xs2, ys]})
    rets
  else
    rets
  end
end