Incrementador

Enviado por admin el Lun, 16/08/2004 - 22:26.

En el artículo Revenge of the Nerd se presenta una tesis bastante interesante, la cual todos los lenguajes se dividen en los orientados a la máquina u orientados a la matemática. De los primeros descienden Fortran, C y derivados; del segundo, Lisp y , de los más modernos, Perl y Python. Los últimos serían aquellos que permitirían realizar, finalmente, los proyectos más grandes en el menor tiempo.
Como muestra de ellos se da el incrementador, o sea, una función que toma n y entrega otra función que toma i y devuelve i+n.
Por ejemplo, permitiría hacer algo como.... (en pseudocódigo)

f=inc(5)
f(5)
echo f(4) // 14

En list sería

(defun foo (n)
    (lambda (i) (incf n i)))

Mis pequeños intentos lo traducen en Ruby a:

def i(n) 
    Proc.new {|i| n+=i}
end

Y en php

function incr($i) {
    if(!is_numeric($i)) { return false;}
	return create_function('$a','static $n='.$i.';return $n+=$a;');
}

En Java dicen que es casi imposible.
Por lo que se ve, si bien PHP no es tan poderoso para manejar los lambdas, igual algo se puede hacer, ayudado de las variables estáticas.
Creo que voy a dedicar un par de post a los closures o funciones lambda. Por lo visto, son un recurso tanto o más potente que los objetos. Espero que mi cabeza soporte :P

Imagen de jo

Hace tiempo que estoy interesado en aprender a programas con algún lenguaje que me permita crear aplicaciones multi-plataforma (la idea de ver corriendo mis aplicaciones bajo sistemas unix y winbug me fascina).
Hasta el momento solo he hecho cosas con ASP, Javascript y PHP (mi preferido sin duda, y también el que mejor me defiendo)
Me gustaría aprender en mis ratos libres algún lenguaje que fuera más bien simple pero con posibilidades, y que sea fácil encontrar documentación (no me importa si es en ingles).
Algo que también me atrae es que mis aplicaciones pudieran interaccionar con scripts php, ya fuera con xml-rpc, soap o algo por el estilo.
Bueno, muchos se preguntarán ¿y a que viene este rollo? , bueno aquí se habla bastante de programación y me gustaría saber según mis preferencias que lenguaje se ajusta más.

Enviado por jo (no verificado) el Dom, 15/08/2004 - 21:07.
Imagen de Claudex

Mis preferencias van por Ruby. Tiene como principio fundamental "la menor sorpresa", o sea, si tu has programado en otros lenguajes, lo más probable es que te funcione bien lo que ya hacías. Su orientación a objetos es INCREIBLE, ya que puedes utilizar el enfoque clásico de superclase-subclase, o el basado en prototipos sin ningún problema.
El problema con ruby es que no existe muchas librerías. Si quieres algo un poco más 'mainstream', pero con igual poder, revisa Python. Se está convirtiendo en una suerte de estándar para los programas de mediana a gran envergadura. El famoso BitTorrent es una muestra de su fuerza
Nos vemos!

Enviado por Claudex (no verificado) el Dom, 15/08/2004 - 21:41.
Imagen de jo

Bueno gracias por tu orientación.

Si bien debo reconocer que Ruby solo lo he visto en tu Weblog, de Phyton si que había oído a hablar y muy bien. De todos modos, un día de estos con tiempo, me informaré y empezare a hacer cositas básicas con ambos para descubrir en cuál estoy más cómodo.

Enviado por jo (no verificado) el Mar, 17/08/2004 - 12:30.
Imagen de Claudex

Por lo mismo, parte con Ruby... lo buento es que el manual que tiene es un muy buen cursito al lenguaje, aunque después de un tiempo hace falta una referencia más 'dura', como la de php. Tal vez más anime y haga un pequeño libro de referencia rubyniana.

Enviado por Claudex (no verificado) el Mar, 17/08/2004 - 15:35.

Enviar un comentario nuevo

El contenido de este campo se mantiene como privado y no se muestra públicamente.
If you have a Gravatar account, used to display your avatar.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Saltos automáticos de líneas y de párrafos.

Más información sobre opciones de formato