Class: Set
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 |