RosettaCodeData/Task/Combinations/Sidef/combinations-2.sidef

18 lines
301 B
Plaintext

func combine(n, set) {
set.len || return []
n == 1 && return set.map{[_]}
var (head, result)
head = set.shift
result = combine(n-1, [set...])
for subarray in result {
subarray.prepend(head)
}
result + combine(n, set)
}
combine(3, @^5).each {|c| say c }