RosettaCodeData/Task/Combinations/Sidef/combinations-2.sidef
2023-07-01 13:44:08 -04:00

17 lines
301 B
Text

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 }