Programacion Funcional

Páginas: 6 (1267 palabras) Publicado: 17 de marzo de 2014
3
Programaci´n Funcional
o
“Antes de la existencia de los ordenadores se inventaron m´todos para resolver problemas. Por tanto, no
e
exist´ la necesidad de hablar en t´rminos de una memoria que cambie por instrucciones en un programa. En la
ıa
e
´
matem´tica de los ultimos cuatrocientos a˜os son muy importantes las funciones. Estas establecen la relaci´n
a
´
n
o
entre los par´metros(la “entrada”) y el resultado (la “salida”) de procesos definidos. Con cada computaci´n,
a
o
el resultado depende de una u otra forma de los par´metros. Por esa raz´n, una funci´n es una buena manera
a
o
o
de especificar una computaci´n. Esta es la base del estilo de programaci´n funcional. Un “programa” consiste
o ´
o
en la definici´n de una o m´s funciones. Para la ejecuci´n de unprograma, se dan par´metros a una funci´n
o
a
o
a
o
y el ordenador tiene que calcular el resultado. Con este tipo de computaci´n existe libertad en la manera de
o
ejecuci´n”.1
o
El paradigma de programaci´n funcional esta soportado principalmente por las funciones de orden–superior
o
(funciones que toman una o m´s funciones como par´metros de entrada o funciones que devuelven una funci´n
aa
o
como salida) y la recursi´n. La mayor´ de los lenguajes de programaci´n funcional est´n influenciados por el
o
ıa
o
a
c´lculo lambda. El c´lculo lambda es un sistema formal desarrollado para expresar la definici´n de funci´n, la
a
a
o
o
aplicaci´n de funciones y la recursi´n.
o
o
Algunos de los lenguajes de programaci´n del paradigma funcional son:
o
1. puros (Gofer, Haskell )2. impuros (Scheme, Lisp)

3.1.

Caracter´
ısticas del paradigma funcional

∗ Programaci´n declarativa
o
∗ Definici´n y evaluaci´n de funciones
o
o
∗ Uso de la recursi´n
o
∗ Funciones como datos primitivos
∗ Seguridad en procesos concurrentes (thread–safe)

3.2.

Lenguaje Scheme

Scheme2 , tiene una sintaxis de lenguaje muy reducida. No necesita de reglas de precedencia, yaque, en
esencia carece de operadores: usa notaci´n prefija para todas las llamadas a funci´n.
o
o
Scheme tambi´n permite la creaci´n de procedimientos an´nimos.
e
o
o

3.2.1.

Reglas para evaluar una expresi´n e de Scheme:
o

1. Si e es un valor primitivo, devuelve ese mismo valor
2. Si e es una variable, devuelve su valor asociado
3. Si e es una expresi´n del tipo (f arg1 . . . argn), donde f es el nombre de una funci´n primitiva (‘+’, ‘−’, . . .)
o
o
eval´a arg1 . . . argn y aplica la funci´n al resultado
u
o
1 Jeroen

Fokker. Programaci´n Funcional. Universidad de Utrecht. 1996.
o

2 http://www.plt-scheme.org/software/drscheme/tour/tour.html

1

Universidad Central – Colombia

Docente: Wilson Soto

4. Si e es una expresi´n del tipo (f arg1 . . . argn ),donde f es el nombre de una funci´n compuesta (definido
o
o
con un define), sustituir f por su cuerpo, reemplazando cada par´metro formal de la funci´n por el
a
o
correspondiente argumento evaluado. Ejemplo:
(define
(define
(define
> (f (+

3.2.2.

(double x) (+ x x))
(square y) (* y y))
(f z) (+ (square (double z)) 1))
2 1))

Definici´n y evaluaci´n de funciones
o
o

EnScheme se pueden asociar valores a nombres mediante la funci´n define. Tambi´n, permite asociar un
o
e
nombre de funci´n con la correspondiente definici´n en el entorno.
o
o
La forma general de la definici´n de una funci´n es:
o
o
(define () )
a
Ejemplo: definir la funci´n f (x, y) = x2 + y 2 .
o
(define (cuadrado x) (* x x))
>(+ (cuadrado 3) (cuadrado 2))
(define (sumacuadrados x y) (+(cuadrado x) (cuadrado y)))
>(sumacuadrados 2 3)
Ejemplo: definir la funci´n f (a) = (a + 1)2 + (a − 1)2 .
o
(define (func a) (sumacuadrados (+ a 1) (- a 1)))
>(func 5)
Ejemplo: Un n´mero n es igual a 5.
u
(define (es=5? n) (= n 5))
>(es=5? 5)
>(es=5? 50)
Ejemplo: Un n´mero n est´ entre 6 y 9.
u
a
(define (entre6y9? n) (and (> n 6)(> 9 n)))
>(entre6y9? 5)

3.2.3.

Condicionales...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Programación Funcional
  • Programacion Funcional
  • Programación Funcional
  • Programación funcional
  • Programacion Logica Y Funcional
  • Programación funcional a mediano plazo
  • Técnicas De La Programación Funcional Perezosa
  • Programacion Funcional D1

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS