FP (lenguaje de programación)

FP (lenguaje de programación)

FP (abreviación de Functional Programming) es un lenguaje de programación creado por John Backus para apoyar la diseminación del paradigma de Programación a nivel funcional.

Contenido

Componentes del lenguaje

Valores

Las principales estructuras de datos del lenguaje son los valores de base y las secuencias:

  • Si x1,...,xn son valores, también lo es la secuenciax1,...,xn〉.

Estos valores se construyen a partir de cualquier conjunto de valores atómicos: booleanos, enteros, reales, caracteres, etc.

  • booleanos  : {T, F}
  • enteros  : {0,1,2,...,∞}
  • caracteres  : {'a', 'b', 'c',...}
  • símbolos  : {x, y,...}

El símbolo representa el valor indefinido. Las secuencias preservan el valor indefinido:

  •         〈x1,...,,...,xn〉 =

Funciones

Los programas en FP son funciones f tales que cada una hace corresponder un valor x en otro :

  • f:x representa el valor resultante de aplicar la función f a x.

Funcionales

Las funciones pueden estar predefinidas o ser definidas según las operaciones de construcción de programas o funcionales.

Algunas funciones tienen elemento neutro, tal es el caso del valor 0 para la suma, o 1 para la multiplicación. El funcional unit produce ese valor al ser aplicado a una función f que posea elemento neutro:

  •         unit + = 0
  •         unit × = 1
  •         unit foo = ⊥ si foo no posee elemento neutro.

Los principales funcionales de FP son:

  • constante :
            :y = x

para todo valor y (exceptuando el valor indefinido, , cuyo resultado es él mismo cualquiera sea la función aplicada).

  • composición f°g:
            f°g:x = f:(g:x)
  • construcción [f1,...fn]:
            [f1,...fn]:x = 〈 f1:x,...,fn:x
  • condición (h⇒f; g):
            (h⇒f; g):x = f:x si h:x = T,
            (h⇒f; g):x = g:x si h:x = F, y
            (h⇒f; g):x = en caso contrario.
  • aplicar a todos o map αf:
            αf:〈x1,...,xn〉 = 〈f:x1,...,f:xn
  • inserción a la izquierda /f:
            /f:〈x〉 = x,
            /f:〈x1,x2,...,xn〉 = f:〈x1,/f:〈x2,...,xn〉〉,
            /f:〈 〉 = unit f
  • inserción a la derecha \f:
            \f:〈x〉 = x,
            \f:〈x1,x2,...,xn〉 = f:〈\f:〈x1,...,xn-1〉,xn〉, y
            \f:〈 〉 = unit f

Recursión

Para introducir la recursión en el lenguaje se utilizan ecuaciones en donde la función que se define aparece tanto a izquierda como a derecha. La forma más sencilla es:

  •         fEf

en donde E'f es una expresión construida a partir de otras funciones y el símbolo f combinadas con los funcionales del lenguaje.

Primitivas

Por ejemplo, las funciones de selección, que se denotan en FP con los símbolos 1,2,... corresponden a la siguiente especificación:

  •         1:〈x1,...,xn〉 = x1
  •         i:〈x1,...,xn
                    = xi si 0 < i ≤ n
                    = ⊥ en caso contrario

Wikimedia foundation. 2010.

Игры ⚽ Поможем написать реферат

Mira otros diccionarios:

  • Lenguaje de programación C — Saltar a navegación, búsqueda C Paradigma: Imperativo (Procedural) Apareció en: 1972 Diseñado por: Dennis M. Ritchie Tipo de dato: Débil, Estático Implementaciones …   Wikipedia Español

  • Lenguaje de programación Java — Saltar a navegación, búsqueda Java Paradigma: Orientado a objetos Apareció en: 1991 Diseñado por: Sun Microsystems Tipo de dato: Fuerte, Estático Implementacion …   Wikipedia Español

  • Lenguaje de programación Pascal — Saltar a navegación, búsqueda Pascal Paradigma: imperativo (estructurado) Apareció en: 1970 Diseñado por: Niklaus Wirth Implementaciones: Múltiples Dialectos …   Wikipedia Español

  • Lenguaje de programación J — Saltar a navegación, búsqueda El lenguaje de programación J, diseñado por Kenneth Iverson y Roger Hui en los 90, es una síntesis de los lenguajes de programación APL (diseñado también por Iverson) y los lenguajes funcionales FP y FL creados por… …   Wikipedia Español

  • Lenguaje de programación Oz — Saltar a navegación, búsqueda Oz es un lenguaje de programación multi paradigma y lenguaje de programación esotérico. Oz fue originalmente desarrollado en el laboratorio de Programación de Sistemas en la Universidad de Saarland por Gert Smolka y… …   Wikipedia Español

  • Lenguaje de programación Limbo — Saltar a navegación, búsqueda Limbo Paradigma: Concurrente Apareció en: 1995 Diseñado por: Sean Dorward, Phil Winterbottom, and Rob Pike Desarrollador: Bell Labs/Vita Nuova …   Wikipedia Español

  • Lenguaje de programación fuertemente tipado — Saltar a navegación, búsqueda Un lenguaje de programación es fuertemente tipado si no se permiten violaciones de los tipos de datos, es decir, dado una variable de un tipo concreto, no se puede usar como si fuera una variable de otro tipo… …   Wikipedia Español

  • Lenguaje de programación Miranda — Saltar a navegación, búsqueda Miranda fue desarrollado entre los años 1985 y 1986 por David Turner. Se trata de un lenguaje de programación funcional sucesor de SASL y KRC. El principal objetivo de este lenguaje era el desarrollar una versión… …   Wikipedia Español

  • Lenguaje de programación Scala — Saltar a navegación, búsqueda Este artículo es acerca del Lenguaje de Programación. Para otros usos, ver Scala. Scala Paradigma: [ functional, orientado a objetos Apareció en: 2003 Diseñado por: Martin Odersky …   Wikipedia Español

  • Lenguaje de programación B — Saltar a navegación, búsqueda B Paradigma: imperativo (procedural) Apareció en: 1969 Diseñado por: Kenneth L. Thompson, Dennis M. Ritchie Tipo de dato: lenguaje sin tipos …   Wikipedia Español

  • Lenguaje de programación D — Saltar a navegación, búsqueda D Paradigma: multiparadigma: orientado a objetos, imperativo Apareció en: 1995 Diseñado por: Walter Bright Última versión: 1.050(estable) 2.035(inestable) (14 de octubre de 2009 …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”