Documentos de Académico
Documentos de Profesional
Documentos de Cultura
funcional
Sesin 5: El paradigma funcional (1)
1930s: Alan Turing, Alonzo Church, Stephen Kleene, Emil Post, etc.
Programacin declarativa:
Recursin
c++;
return c;
}
contador(): 1
contador(): 2
contador(): 3
(define (f x)
(define (f x)
...)
...)
(define y (f 2))
(+ (f 2) (f 2))
(+ y y)
Si e es una expresin del tipo (f arg1 argn), donde f el nombre de un procedimiento primitivo (+, -, ),
evaluar arg1 argn y aplicar el procedimiento al resultado.
Si e es una expresin del tipo (f arg1 argn), donde f es el nombre de un procedimiento compuesto
(definido con un define), sustituir f por su cuerpo, reemplazando cada parmetro formal del procedimiento
por el correspondiente argumento evaluado. Evaluar la expresin resultante.
Orden normal: se realizan todas las sustituciones hasta que se tiene una larga
expresin formada por expresiones primitivas; se evala entonces
(load "simply.scm")
(load "order.scm")
(def (doble x) (+ x x))
(def (cuadrado x) (* x x))
(def (f z) (+ (cuadrado (doble z)) 1))
(applic (f (+ 2 1)))
(normal (f (+ 2 1)))
Dada la funcin:
(define (double x)
(+ x x))