On Dec 11, 2007 2:24 PM, Emmanuel Oga <[EMAIL PROTECTED]> wrote: > "...los lenguajes de script al no ser tipados..." > > creo que todo el post de Wall habla acerca de lo dificil de definir lo que > es un "script language". > > Tene en cuenta que ruby _es_ tipado, sino proba esto: > > 1.class # => Fixnum > > De hecho es "tan" tipado que cada objeto que al que puedas > referenciar respondera al mensaje "class", es decir cada cosa sera un objeto > y como tal, > debera ser instanciado en base a una clase. Algunos considereran que la > clase del objeto > es su tipo. Otros, que no importa la clase sino los mensajes a los cuales > responda el objeto. > > El tema es que lo que devuelve .class no se sabe en tiempo > de compilacion sino solo al ejecutar el codigo, por eso se dice que es > dinamico. > Que puedas tratar de "inferir" que tipo de objeto tendras es otra cosa... >
Claro, pero el tema es que el parser no puede diferenciar entre un funcion con 2 argumentos de una de 5 argumentos en donde se usa un variable_arg (como * en el caso de ruby): El overloading de funciones es bastante util y casi imposible en lenguajes dinamicos/interpretados como es el caso de Ruby. irb(main):001:0> def decir_tipo(arg) irb(main):002:1> puts arg.class irb(main):003:1> end irb(main):004:0> decir_tipo "a" String irb(main):005:0> decir_tipo 1 Fixnum irb(main):006:0> decir_tipo [1,2,3,4] Array irb(main):007:0> decir_tipo :foo => :bar Hash El interprete no puede estar evaluando el "tipo" de cada dato que paso a un metodo *cada vez* que llamo a este para determinar la firma y direccionarme al overload correcto. -- Luis Lavena Multimedia systems - A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools. Douglas Adams _______________________________________________ Ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
