2009/10/6 Lucas Sallovitz <[email protected]>:
> 2009/10/6 Porta <[email protected]>
>>
>> Buenas.
>> Tengo un problemita que me esta trastornando y no le encuentro la vuelta.
>>
>
> Algo así:
>
> arrays_obligatorios = { { }, { }, ... }
> arrays_opcionales = { { }, { }, ...}
>
> n = arrays_opcionales.size ^ 2
> i = de 0 a n
>   arrays = arrays_obligatorios + arrays_opcionales.filter { el bit de i
> correspondiente al índice es 1 }
>   resultado << arrays.producto_cartesiano

Yo usaría Array#product combinado con una pisadita para los
opcionales: agregale a los opcionales un elemento nil.
Después tenés a.product(b, c, d), y vas a tener los arrays armaditos,
con un nil donde no va nada porque es opcional, y ahí le hacés un
map(&:compact) y chau.

-- 
Nacho Facello
:wq
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a