Quelle serait la traduction correcte de la méthode Python suivante en Ruby ?
def uniqueCombinations(self, items, n):
"""
items: liste d'éléments
n: nombre dans un groupe
"""
if n == 0:
yield []
else:
for i in range(len(items)-n+1):
for cc in uniqueCombinations(items[i+1:],n-1):
yield [items[i]]+cc
Ce que je veux faire, c'est appeler
uniqueCombinations(['01', '02', '03'], 2)
et obtenir
[['01', '02'], ['01', '03'], ['02', '03']]
Voici ce que j'ai jusqu'à présent.
def uniq_c(items, n)
if n == 0
yield []
else
puts items.inspect
range_max = items.length-n+1
for i in (0...range_max)
u = uniq_c(items[(i+1)..-1], n-1) { |x| x }
u.each do |cc|
yield [items[i]] + cc
end
end
end
end
mais j'obtiens ceci :
in `+': can't convert Fixnum into Array (TypeError)