Como vamos¶
Matemáticas¶
- Relaciones: A hacia B o \(A \mathbb{ R } B \subseteq A \times B\) Propiedades Reflexiva, simetrica, antisimetrica y transitiva
- Relaciones pueden ser orden parcial (Reflexiva, antisimetrica y transitiva), de equivalencia (Reflexivia, simetrica y transitiva)
-
Relaciones n-arias que entre varios conjuntos
- Composicion \(A o B\) \((a,b) \in A \wedge (b,c) \in B \therefore (a,c) \in AoB\)
-
Potencia de una relación
\[ A^n = \begin{cases} A & \texttt{ si } n = 1 \\ A^{n-1} o A & \texttt{en otro caso} \end{cases} \] -
Proyección: Seleccionar un subconjunto dentro de una relación n-aria \(A = \{a_1,a_2,\ldots,a_n\}\) proyección \(\{a_i,a_j,a_k,\ldots\}\)
- Join \(A = \{a_1,a_2,\ldots,a_k, c_1,c_2 \ldots c_m\}, B = \{b_1,b_2,\ldots,b_p, c_1,c_2 \ldots c_m\}\) el join es \(\{a_1,a_2,\ldots,a_k, c_1,c_2 \ldots c_m, b_1,b_2,\ldots,b_p\}\)
Programación.¶
- Elementos de PF
- Variables inmutables
- Recursión como metodo de solución de problemas
- No uso elementos de corte flujo: return, break, continue
- No uso de elementos iterativos (for o while)
- Uso de funciones de alto orden (funciones que reciben funciones o devuelven funciones)
- Toda expresión se reduce a un valor
-
Alcance léxico con los brackets {}
El fenomeno de shadowing{ val x = 10 val y = 20 x+y } //Este bloque se reduce a 30val x = 10 def f(x:Int):Int = x+2 println(f(20)) //22 oculta el valor de x = 10 -
Evaluación de expresiones
- De izquierda a derecha
- CBV: Todos los parametros se evaluan antes de invocar a la función
- CBN Se evaluan unicamente cuando se van a utilizar
- Funciones y procesos
- Recursión lineal --> Proceso recursivo (requiere marcos de pila)
- Recursión de cola --> Proceso iterativo (Solo un marco de pila)
- Recursión de árbol (Requiere más de un llamado recursivo) no es facil de optimizar.
Tema¶
Inducción matematica