Clase 9 (Ćltima antes del parcial)
Clase 8
Clase 7
Clase 6
Temas desarrollados - ArtĆculos en la wiki:Ā Tipos,Ā
- Mumuki:Ā LasĀ lecciones 4Ā Ā y 5 de prog funcional tratan muy bien el tema de Inferencia de tipos y orden superior
- Apunte: En la sección apuntes .
Enunciados para la clase:Ā Ejercicio - Código hecho en claseĀ Ā
- Recuerden tener a mano laĀ guĆa de lenguajes.
|
Ā Clase 5Ā
Ā Clase 4Ā
Ā Temas desarrollados - ArtĆculos en la wiki:Ā Orden Superior (Alto Orden),Ā
- Mumuki:Ā LasĀ lecciones 8 y 9Ā de prog funcional tratan muy bien el tema de Listas.
- Apunte: En la sección apuntes , el módulo 3 habla de listas, pero el módulo 4 habla de temas que nosotros no vemos hasta mÔs adelante. El módulo 5 habla de Orden Superior, pero ojo, que usa algunos demas del módulo 4.
Apunte de GIT:Ā Ā AcĆ” una explicaciónĀ de GIT,Ā Ā AcÔ una guĆa machete de los comandos,Ā - Enunciados para la clase:
- Código hecho en clase:Ā
- Recuerden tener a mano laĀ guĆa de lenguajes.
|
Clase 3Ā
Temas desarrollados - ArtĆculos en la wiki:Ā
- Mumuki: EstÔn las lecciones 3 a la 7 , aunque incluyen algún tema adicional.
- Apunte: En la sección apuntes , hasta el módulo 3 inclusive.
- Código hecho en clase: Código.
- Ejercicios para hacer:Ā Ejercicios.
|
Temas desarrollados- Intro al Paradigma Funcional
|
Clase 1
Ā Ā Ā Resumen de la clase
Resumen de la claseEjemplos de Expresividad y Declaratividad ”Ojo! no confundir que si es corto el código es mÔs declarativo! Código original | (mejorando expresividad) | (usando un motor para mejorar declaratividad) | void bobEsponja(int a[], int b, int c[]){ int d, e = 0;  for (d = 0; d < b; d++) { if (a[d] % 2 == 0) { c[e] = a[d]; e = e + 1; } } } | void pares(int numeros[], int cantidad, int losPares[]){
int i, j = 0;
for (i = 0; i < cantidad; i++){ Ā Ā if (numeros[i] % 2 == 0) { Ā Ā Ā Ā losPares[j] = numeros[i]; Ā Ā Ā Ā j++; Ā Ā } } } | pares = filter even | int jojo(Alumno x){ int y; int z[] = notasAlumno(x); for(y = 0; y < cantNotas(x) ; y++ ){ if ( z[y] < 4) return 0; } return 1; } | int aprueba(Alumno alumno){ int i; int notas[] = notasAlumno(alumno); for(i = 0; i < cantNotas(alumno) ; i++ ){ Ā Ā if ( notas[i] < 4) return 0; } return 1; } | aprueba(Alumno) :- forall(nota(Alumno,Nota), Nota >= 4). |
En la materia Sistemas Operativos, les van a dar unas librerĆas que se llaman las "socommons". Si se fijan, encontrar los pares se puede hacer declarativamente tambiĆ©n en C. Usando las socommons: t_list* pares(t_list* numeros){ return list_filter(numeros, (void*) esPar); Ā Ā } bool aprueba(Alumno alumno){ return list_all_satisfy(notasAlumno(alumno), (void*) estaAprobada); Ā Ā } TareaSuscribirse a la lista obligatoria (si es que no estĆ”s ya suscripto) (Ver el Contrato Cursada Feliz)
Ejercicio 1 Se requiere determinar si un sueldo es piola. Esto ocurre únicamente si es grandote, y ademÔs, no es sospechoso (es sospechoso si es mayor a 100.000, y causa que AFIP lo investigue). Por ejemplo, 200.000 no es un sueldo piola porque causa que lo investiguen. En cambio, 50.000 sà es sueldo piola. Ejercicio 2Expresar todos los operadores del ejercicio 1 de forma infija. |
|