Cursos‎ > ‎Noc-Miércoles 2‎ > ‎

bitacoras k2152

Clase 9 (Última antes del parcial)

Temas desarrollados

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.



Comments