Programacion Declarativa

Páginas: 2 (431 palabras) Publicado: 27 de mayo de 2012
´
´
Programacion Declarativa – Haskell – Informatica Sistemas – Curso 2003-2004
´
Pepe Gallardo – Universidad de Malaga

Tema 7. El sistema de clases
7.1 Funciones Sobrecargadas
Clases eInstancias
7.2 Algunas Clases e Instancias predefinidas
La clase Eq
La clase Ord
Las clases Show y Read
Las clases Num y Fractional
7.3 Instancias param´tricas
e
7.4 Derivaci´n de instancias
o7.5 Tipos sobrecargados: Contextos

7.1 Funciones Sobrecargadas
Tienen sentido para algunos tipos, pero no todos
Pueden tener definiciones distintas para cada tipo
Ejemplo: Consideremos los tipostype Lado
type Radio
´
type Area
data Cuadrado
data C´rculo
ı

=
=
=
=
=

Float
Float
Float
UnCuadrado Lado deriving Show
UnC´rculo Radio deriving Show
ı

´
´
Tiene sentidodefinir una funcion para calcular el area de un Cuadrado :

´
´ rea
a
:: Cuadrado → Area
´ rea (UnCuadrado l ) = l ∗ l
a
O para un C´rculo :
ı

´
´ rea
a
:: C´rculo → Area
ı
´ rea(UnC´rculo r ) = pi ∗ r ∧ 2
a
ı
´
¿ Es el tipo de ´ rea :: a → Area ?
a
´
NO, no tiene sentido, p. ej., calcular el area de un Bool

´ rea tiene sentido para los tipos Cuadrado y C´rculo , pero no paraBool , luego no
a
ı
´
es polimorfica

´
´
Informatica – Pepe Gallardo – Universidad de Malaga

7.1

Clases e Instancias
´ rea tiene sentido para varios tipos pero NO para todos
a
´
´rea tiene una definicion DISTINTA para cada tipo
a
´
´ rea es un ejemplo de funcion Sobrecargada
a
´
En Haskell, para definir funcion sobrecargada hay que crear una clase (conjunto de
´
tiposque implementan la funcion):

´
class Tiene Area t where
´
´ rea :: t → Area
a
´
Tiene Area es el nombre de la clase (empieza por mayuscula)
´
t es una variable de tipo que representa lostipos de la clase
´
´
El metodo ´ rea solo estara definido para los t que pertenezcan a la clase
a
Para incluir un tipo en una clase se realiza una instancia

´
instance Tiene Area Cuadrado...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Declarar Variables Programación
  • Ensayo Programacion Declarativa
  • Las declaraciones
  • DECLARO
  • DECLARACIONES
  • Declaraciones
  • Quienes son declarantes
  • declaraciones

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS