2009/11/2 Nicolás Sanguinetti <[email protected]>:
> 2009/11/2 Nicolás Sanguinetti <[email protected]>:
>> 2009/11/2 Lucas Sallovitz <[email protected]>:
>>> 2009/11/2 Nicolás Sanguinetti <[email protected]>:
>>>> 400.instance_eval { a += self && b += self }
>>>
>>> Claramente tu enfoque es desprolijo, lo correcto sería:
>>>
>>> variable1, variable2 = (class Integer { def
>>> masigual(*vars){vars.map{|n|
>>> n+=self}}}).new(400).masigual(variable1,variable2)
>>
>> :-/
>>
>> Hay variables locales ahí. No entendiste nada, bo. :P
>
> Además de que no es ruby valido. No podés usar {} para definir clases
> o métodos (no directamente, o sea, podés usar eso en Class.new o
> define_method porque reciben un bloque, pero las keywords class y def
> no reciben un bloque.
>
> Además, abrir una clase y definir cosas, no devuelve la clase:
>
> (class Integer; end) #=> nil
>
> Como todo en ruby, eso de vuelve la última linea del bloque de código.
>
> En todo caso, tendrías que hacer (class Integer; blah blah; self; end)
> para que devuelva la clase.
>
> Y ta, tampoco podés hacer Integer.new(400). Podés hacer Integer(400),
> porque hay un método definido en Kernel que se llama igual que la
> clase. Para llegar a ese método desde la clase, lo único que se me
> ocurre es method(Integer.name).call(400).
>
> Que tá, es chancho, pero meh, a esta altura ya no estamos pensando en eso.
>
> O sea que quedaría en algo como:
>
> a,b=method(Integer.class_eval{define_method(:masigual){|*args|args.map{|n|n+=self}}&&self}.name).call(400).masigual(a,b)
>
> …pero sigue teniendo variables locales :P
>
>>> Lucas.
>>> _______________________________________________
>>> 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
>

No debiste...











A LA HOGUERA!!!
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a