Subido por jperezazurduy

Introduccion Haskell WinHugs

Anuncio
FACULTAD NACIONAL DE INGENIERIA
INGENIERIA DE SISTEMAS E INGENIERIA INFORMATICA
LABORATORIO DE COMPUTACION
LABORATORIO No 8
SIS2330 - METODOLOGIA DE LA PROGRAMACION III
Nombre: Cáceres Colque Mahylee Priscilla
Paralelo: “C”
Tema: HASKELL y WINHUGS
OBJETIVOS.
• Los estudiantes comprenderán los elementos esenciales de la programación
Funcional.
• Que el alumno conozca la programación funcional así como que se habitúe con dicho
lenguaje.
• Conocer el entorno de la herramienta WinHugs.
• Emplear el intérprete WinHugs para la elaboración y evaluación funciones del
paradigma de Programación Funcional.
FUNDAMENTO TEORICO.
Conceptos Básicos
Haskell es un lenguaje funcional puro, de propósito general, que incluye muchas de las últimas
innovaciones en el desarrollo de los lenguajes de programación funcional, como son las
funciones de orden superior, evaluación perezosa, tipos polimórficos estáticos.
El Modelo de Programación Funcional
El modelo funcional, tiene como objetivo la utilización de funciones matemáticas puras sin
efectos laterales y, por tanto, sin asignaciones destructivas.
Lenguaje Haskell
En Haskell toda función tiene un tipo que especifica la naturaleza de sus argumentos y
resultados.
• Los tipos permiten que muchos problemas se detecten antes de la ejecución.
• Existe un sistema interactivo llamado Hugs para ejecutar programas en Haskell.
• Asimismo hay un compilador popular llamado Glasgow Haskell Compiler.
• Al inicializar el sistema Hugs el primero carga una librera llamada Prelude.hs.
Página 1
ACTIVIDADES DE CLASE.
Aquí tenemos algo de aritmética simple, elabore pruebas semejantes a las que se muestran:
Prelude> 2 + 15
17
Prelude> 49 * 100
4900
Prelude> 1892 - 1472
420
Prelude> 5 / 2
2.5
Se explica por si solo. También podemos utilizar varias operaciones en una misma línea de
forma que se sigan todas las reglas de precedencia que todos conocemos. Podemos usar
paréntesis para utilizar una precedencia explícita.
Prelude> (50 * 100) - 4999
1
Página 2
PROBLEMAS PROPUESTOS.
Sin usar el computador, evalúe las siguientes expresiones, y para cada una de ellas indique el
resultado y su tipo (si la expresión es válida) o qué error ocurre (si no lo es):
1) >>> 2 + 3
# Respuesta: tipo int, valor 5
2) >>> 4 / 0
# Respuesta: error de división por cero
3) >>> 5 + 3 * 2 #Respuesta: tipo int, valor 11
4) >>> '5' + '3' * 2
#Respuesta: tipo str, valor 533
5) >>> 2 ** 10 == 1000 or 2 ** 7 == 100 #Respuesta: tipo bool, valor False.
6) >>> int(“cuarenta”) #Respuesta: error, porque 40 no es un numero valido
7) >>> 70/16 + 100/24 #Respuesta: tipo: float, valor 8.5417.
8) >>> 200 + 19% #Respuesta: error de sintaxis.
9) >>> 3 < (1024 % 10) < 6 #Respuesta: tipo bool, valor True.
10) >>> 'six' + 'eight'
#Respuesta: tipo str, valor sixeight.
11) >>> 'six' * 'eight' #Respuesta: TypeError.
12)>>> float(-int('5') + int('10')) #Respuesta: tipo float, valor 5.0
13)>>> abs(len('ocho') - len('cinco')) #Respuesta: tipo int, valor 1
14)>>> bool(14) or bool(-20) #Respuesta: tipo bool, valor true
15)>>> float(str(int('5' * 4) / 3)[2] #Respuesta: error de entrada
Página 3
Página 4
Descargar