lunes, 30 de mayo de 2016

Tipos de datos en programacion funcional

En lenguaje funcional el uso de los datos debe ser selectivo y se debe tener cuidado al momento de hacer uso de un tipo en especifico de dato para retornar algun otro, por naturaleza del lenguaje es imposible hacerlo directamente ya que una vez iniciado un procedimiento no se pueden incluir tipos de datos diferente a la entrada, para poder hacer eso se deben hacer especificaciones en la declaracion de la funcon como por ejemplo:

       <Haskell>

        Funcion :: Int -> String
        Funcion x = <parametros de la funcion>

donde "x" representa la entrada de datos que habra al nomas ser solo la x solo recibira un parametro,
en este caso se esta creando una funcion que va a recibir un entero y va a retornar una cadena, otro ejemplo de funciones que requieren mas trabajo la especificacion de tipos se hace de la siguiente manera:

        <Haskell>

         Funcion :: [a]->Int->Bool
         Funcion x = <parametros de la funcion>

En el ejemplo anterior se esta declarando una fucnion que recibira una lista, luego manejara enteros y retornara un booleano.

Los tipos de datos que puede recibir haskell son
Int
String
Bool
Char
[a] (lista)
[Int] (lista enteros)
Float
Double

Para crear un tipo de dato personalizado se utiliza la expresion type <nombre> = (<contenido>)
por ejemplo podemos crear un tipo nombre de la siguiente manera:
     type nombre = String

o un tipo numero de telefono
     type numero = Int

o un dato mas complejo como una tupla
    type contacto = (String,Int)
    o
    type contacto = (nombre,numero)

Lista:
Una lista es un conjunto de datos indefinido, que almacena solo un tipo de dato, algo similar a los arreglos con la limitande a un solo tipo de dato Ejemplo:

          [10,20,30,40] <- Lista Int
          ['a','b','c','d']         <- Lista String

Si tratamos de hacer una mezcla tal como [10,20,30,a,b,c] seria incorrecto y arrojaria error debido a que se esstan integrando enteros y caracteres en la lista cuando deberian ser solo enteros o solo cadenas

creacion de listas en haskell:
en haskell  para crear una lista se utiliza el comando let <nombre_lista> =  [<Valores>]
Ejemplo:
         Let lista1 = [1,2,3,4,5,6,7,8,9]
         Let lista2 = ['a','b','c']
una vez creadas es solo cuestion de teclear en el prompt de haskell en nombre de la lista para que muestre sus contenidos


Las listas pueden ser manipuladas de distintas formas como por ejemplo si usamos la palabra reservada head nos muestra el primer valor dentro de la lista:
       head lista1
       head lista2



Otros comandos que hay para el uso de las listas son tail, init ,last.
tail muestra todos los elementos menos el primero, init muestra todos los elementos menos el ultimo y last muestra solo el ultimo elemento, se tiene tambien otra funcion de uso en listas que

todos estos comandos pueden ser utilizados en combinacion para poder desarrollar ciertas operaciones con las listas como sumarlas, mezclarlas o recorrer valores dentro de la lista

Tupla:

Las tuplas en haskell a diferencia de las listas estas pueden tener multiples tipos de valores dentro
por ejemplo:
    let tupla = (1,a,3.5)

Las tuplas pueden tener un gran uso dentro de programacion funcional ya que se pueden conjuntar multiples datos en una tupla y luego asignar esa tupla como un tipo de dato

En lenguajes de tipo funcional se pueden crear tipos de datos personalizados, los cuales, son declarados como algun tipo de dato ya existente (para un uso mas sencillo al momento de declarar en un programa o mas entendible) o un conjunto de datos

No hay comentarios:

Publicar un comentario