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

Responder a