Combinations with repetitions
func cwr (n, l, a = []) {
n>0 ? (^l -> map {|k| __FUNC__(n-1, l.slice(k), [a..., l[k]]) }) : a
}
cwr(2, %w(iced jam plain)).each {|a|
say a.map{ .join(' ') }.join("\n")
}%w(iced jam plain).combinations_with_repetition(2, {|*a|
say a.join(' ')
})Output:
iced iced
iced jam
iced plain
jam jam
jam plain
plain plainOutput:
Last updated