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
