Cursosā€Ž > ā€ŽNoc-MiĆ©rcoles 2ā€Ž > ā€Ž

bitacoras k2152

Clase 9 (Última antes del parcial)

Temas desarrollados
  • Apuntes:Ā Todos. Ya pueden leer todos los apuntes.
  • Repaso GeneralĀ Ā Apuntes en General

Clase 8

Temas desarrollados

Clase 7

Temas desarrollados

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Ā 

Ā  Temas desarrollados

Ā  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

Clase 2Ā 


Temas desarrollados
  • Intro al Paradigma Funcional
Clase 1

Ā Ā  Ā Resumen de la clase


Resumen de la clase

Ejemplos 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); Ā Ā 

}


Tarea

  1. Suscribirse 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 2

Expresar todos los operadores del ejercicio 1 de forma infija.