Programacion Logica Y Funcional
Enviado por sergioreyes10 • 24 de Abril de 2015 • 5.393 Palabras (22 Páginas) • 854 Visitas
INSTITUTO TECNOLÓGICO SUPERIOR
DE SAN ANDRÉS TUXTLA
CARRERA:
ING. SISTEMAS COMPUTACIONALES.
DOCENTE:
ISC. LILY A. MEDRANO MENDOZA
NOMBRE DE LA ASIGNATURA:
PROGRAMACIÓN LOGICA Y FUNCIONAL
NOMBRE DEL ALUMNO
CHAGALA AZAMAR ABEL
GRUPO:
804-B
FECHA:
SAN ANDRÉS TUXTLA, VER., 08 DE MARZO DE 2015
ÍNDICE
OBJETIVO 3
CONCEPTOS BÁSICOS DE LA PROGRAMACIÓN FUNCIONAL 4
CARACTERÍSTICAS DE LA PROGRAMACIÓN FUNCIONAL 7
LENGUAJE DE PROGRAMACIÓN REPRESENTATIVA 9
DEFINICIÓN DE HASKELL 9
HISTORÍA 9
TIPOS SIMPLES PREDEFINIDOS 10
IMPLEMENTACIONES 11
CARACTERÍSTICAS DE HASKELL 12
PRINCIPIOS DE HASKELL 13
CONSTRUCTORES DE TIPO PREDEFINIDOS 13
FUNCIONES CONSTRUCTORAS Y PATRONES 15
Objetos predefinidos (constantes y funciones) 15
OBJETOS PREDEFINIDOS (CONSTANTES Y FUNCIONES) 16
DEFINICIÓN DE OBJETOS (I) 16
DEFINICIÓN DE OBJETOS (II) 16
DEFINICIÓN DE OBJETOS (III) 17
MÉTODO (I) 17
MÉTODO (II) 17
MÉTODO (III) 18
MÉTODO (IV) 18
MÉTODO (V) 18
DEFINICIÓN DE OBJETOS (IV) 19
OPERADORES 19
NORMAS PARA LA DECLARACIÓN DE OPERADORES 20
ASOCIATIVIDAD Y PRECEDENCIA (II) 20
OPERADORES Y FUNCIONES PREFIJAS 21
HASKELL Y LOS ERRORES 23
LA VELOCIDAD DE HASKELL 24
CONCLUSIÓN 25
REFERENCIAS ELECTRÓNICAS 25
INTRODUCCIÓN
En ciencias de la computación, la programación funcional es un paradigma de programación declarativa basado en la utilización defunciones aritméticas que no maneja datos mutables o de estado. Enfatiza la aplicación de funciones, en contraste con el estilo de programación, que enfatiza los cambios de estado. La programación funcional tiene sus raíces en el cálculo lambda, un sistema formal desarrollado en los años 1930 para investigar la definición de función, la aplicación de las funciones y la recursión. Muchos lenguajes de programación funcionales pueden ser vistos como elaboraciones del cálculo lambda.
Los lenguajes de programación funcional, especialmente los que son puramente funcionales, han sido enfatizados en el ambiente académico principalmente y no tanto en el desarrollo de software comercial. Sin embargo, lenguajes de programación importantes tales como Scheme, Erlang, Rust, Objective Caml y Haskell, han sido utilizados en aplicaciones comerciales e industriales por muchas organizaciones.
El presente trabajo contiene la recopilación de lo que es la programación funcional y se ve a grandes rasgos lo que es el lenguaje de programación funcional Haskell, describiendo cada una de sus características y funciones de este lenguaje.
OBJETIVO
El objetivo del presente trabajo es que el alumno pueda conocer más a fondo sobre lo que son los lenguajes funcionales, en este caso se hablará de Haskell, y pueda profundizar más sus conocimientos acerca de este lenguaje.
CONCEPTOS BÁSICOS DE LA PROGRAMACIÓN FUNCIONAL
Programación funcional: se basa en el concepto de función (que no es más que una evolución de los predicados), de corte más matemático.
Para la mayoría de los desarrolladores de .NET, resulta más fácil comprender lo que es la programación funcional al entender lo que no es. La programación imperativa es un estilo de programación que se considera opuesta a la programación funcional. También es el estilo de programación con el que probablemente ya esté más familiarizado, dado que la mayor parte de los lenguajes de programación estándar son imperativos. La programación funcional y la programación imperativa se diferencian en un nivel muy fundamental y usted puede observarlo hasta en el código más simple:
int number = 0;
number++;
Esto evidentemente aumenta una variable en uno. Eso no es muy fascinante, pero considere una manera diferente en que podría resolver el problema:
const int number = 0;
const int result = number + 1;
number aún se aumenta en uno, pero no cambia de lugar. En vez de eso, el resultado se almacena como otra constante, dado que el compilador no permite modificar el valor de una constante. Se puede decir que las constantes son inmutables debido a que el valor no se puede cambiar una vez definido. A la inversa, la variable number de mi primer ejemplo era mutable, ya que se puede modificar su valor. Estos dos enfoques muestran una de las diferencias fundamentales entre programación imperativa y programación funcional. La programación imperativa pone énfasis en el uso de variables mutables, mientras que la programación funcional usa valores inmutables.
La mayoría de los desarrolladores de .NET indicaría que number y result del ejemplo anterior son variables, pero como programador funcional, se debe ser más cuidadoso. Después de todo, la idea de una variable constante es, en el mejor de los casos, confusa. En su lugar, los programadores funcionales opinan que number y result son valores. Asegúrese de reservar el término “variable” para objetos que sean mutables. Tenga en cuenta que estos términos no son exclusivos de la programación funcional, pero son mucho más importantes al programar en estilo funcional.
Esta distinción puede parecer pequeña, pero es la base para muchos de los conceptos que hacen que la programación funcional sea tan eficaz. Las variables mutables son la causa fundamental de muchos errores desagradables. Como verá a continuación, conducen a dependencias implícitas entre diferentes partes del código, lo que produce muchos problemas, especialmente relacionados con simultaneidad. Por el contrario, las variables inmutables presentan significativamente menos complejidad. Conducen a técnicas funcionales como el uso de funciones como valores y la programación compositiva, que también exploraré en más detalle más adelante. La mayoría de los programadores imperativos están entrenados para creer que es imposible hacer algo útil con valores inmutables. Sin embargo, considere este ejemplo:
string stringValue = "world!";
string result = stringValue.Insert(0, "hello ");
La función Insert compiló la cadena “hello world!”, pero se sabe que Insert no modifica el valor de la cadena de origen. Esto se debe a que las cadenas son inmutables en .NET. Los diseñadores de .NET Framework usaron un enfoque funcional, porque facilitaba escribir mejor código con cadenas. Dado que las cadenas son uno de los tipos de datos que se usan más
...