Zusammenfassung der Ressource
Creación de tipos y clases de tipos en
Haskell
- partes: ej. data Bool = True | False
- podemos hacer ajuste de patrones en los constructores
- La declaración del tipo puede devolver un valor
- lado derecho: define el constructor del tipo de dato
- los constructores son funciones como todo lo demás
- Podemos abstraer la figura
- los parámetros se pueden definir con un tipo de dato
- los campos definidos en el constructor son parametros
- Para poder ver la definición colocamos "deriving (show)"
- Con esto podremos ver la difinición por consola
- lado izquierdo: define el tipo de dato
- podemos definir funciones a partir de estos tipos
- Ver la definición del tipo de datos al final del constructos usamos "deriving (Show)"
- podemos Mapear los constructores
- Podemos exportar las las Funciones y tipos creando un modulo con siguiendo la estrutura
- las definiciones debe estar jerarquizadas de acuerdo su uso
- Cuando en el modulo se exporte el constructor se debe colocar (..)
- Constructor y DataTypes
- Podemos combinar los DataTypes en los Constructores
- Podemos extender y hacer DataTypes más robustos
- Permite que el patron se pueda transformar para que sea más legible
- Nos permite declarar DataTypes y situarlas en los módulos
- Sintaxis de registgro
- Podemos construir una estructura de describa algún tipo ej: una persona
- Podriamos definir un dataType sencillo
- Pero podemos definir su estructura de una forma más optima
- DataType Parameter
- Nos permite pasar Tipos y con base de este generar otro tipo
- Los tipos dentro del tipo deben estar plenamente definidos
- Instancias Derivadas
- permite crear a partir de una interfaceun comportamiento para un tipo
- Permite hacer operaciones para validar un tipo con otro
- Estructuras de datos Recursivas
- Podemos aplicar la sintaxis de registros
- Funcionamiento
- Conclusión
- Podemos definir funciones infijas
- Definición
- infixr (Definición por la derecha)
- nivel de precedencia de 0 a 9, de menor a mayor
- Simbolo de la función creada
- Tipo de asociatividad
- infixl(Definición por la izquierda)
- Árbol Binario
- Caracteristicas para el árbol binario de búsqeuda
- No Lineal
- Recursiva
- Jerarquica
- Auto-Contenida
- No permite duplicados
- Notation de orden Logaritmica
- Estructura general
- el nodo principal es el padre y en el nivel 0 es la raiz
- los descendientes son hijos o subárbol
- Tiene niveles
- los nodos del mismo nivel adyacente son hermanos
- Los nodos finales son hojas y no tienen hijos
- Tienes caminos que son la conexión con nodos adyascentes
- las ramos son las conexiones entre un nodo y otro
- La altura se mide por la cantidad de niveles que posea el arbol
- Definición, Ejemploo:
- Debe ser Homogeneo
- Puede estar vacio
- Puede ser un nodo seguido de distintos tipos de datos (Hijo izquierdo y derecho)
- Puede escribirse por consoloa, leido y equiparado
- Está autocontenido
- Clases de tipo propios
- Son contratos igual que las interfaces en los lenguajes de programación con C#, Python o Java
- Define un comportamiento, el comportamiento se condigue mediante la definición de sus funciones o tipos que después se implementas
- Si un tipo una instancia de una clase de tipo, podemos usar sus funciones
- cuando se define una clase:
- Inician con primera letra en mayúscula
- La variable representa el tipo a través de us instancia de la clase
- No es obligatorio implementar las métodos de la clase, pero deben estar declaradas
- Usa el patron de diseño
- "Class" es para definir Clases de tipos
- "instance": es para que nuestros tipos tengan una instancia
- HACER QUE OBTENGAMOS POLIMORFISMO AL CREARLAS