2009/9/24 Matías Flores <[email protected]>:
> c.values_at(*(0..c.size).select {|e| e%4 == 0})

Igual no me gusta el rango ese, prefiero usar un enumerator

>> ary.values_at(*a.each_index.select {|i| i % 2 == 0 })
=> ["foo", "baz", "cuack"]

Para que eso ande en 1.8.6 sería

require "enumerator"
ary.values_at(*a.to_enum(:each_index).select {|i| i % 2 == 0 })

Pero en 1.8.7 y 1.9 deberia andar "asi nomas" sin requerir nada.

La forma "autocontenida" (o sea, sin necesidad de referenciar por
separado al array) seria algo como

>> a.each_with_index.select {|e, i| i % 2 == 0 }.map {|e, i| e }
=> ["foo", "baz", "cuack"]

Pero tenes que iterar dos veces sobre el array, lo cual tampoco encara


> Pediste escribir poco, que sea claro es otro precio... <g>
>
> Saludos,
> Matías
>
> El día 24 de septiembre de 2009 13:56, p8queen <[email protected]> escribió:
>> Gracias. Por las respuestas. Va de nuevo el enunciado.
>>
>> La solucion no son los indices, sino los valores cuyos indices sean
>> congruentes a 0 modulo 4
>> ejemplo:
>> dado c = %w{diego luis wilson santiago leandro lucas mariana paula
>> analia fernando marcela}
>> salida --> diego, leandro, analia
>>
>>
>> PD: en otro lenguaje la solucion es c[::4]
>>
>> --
>> gustavo c
>> _______________________________________________
>> Ruby mailing list
>> [email protected]
>> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>>
> _______________________________________________
> Ruby mailing list
> [email protected]
> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a