Cursos‎ > ‎Cursadas Anteriores‎ > ‎2019‎ > ‎Mañ-Jueves‎ > ‎

Bitácora Jueves Mañana 2019

21/03 - Intro a la materia y a funcional

publicado a la‎(s)‎ 21 mar. 2019 9:24 por Alf Sanzo   [ actualizado el ]

Buenas!

Resumen de la clase

Tarea

  1. Suscribirse a la lista obligatoria (si es que no estás ya suscripto) (Ver el Contrato Cursada Feliz).

  2. Entrar a github.com y crearse un usuario. Sobre el nombre de usuario: Github es un portal que probablemente usen para alguna otra materia y/o para su vida laboral. En lo posible evitar nombres raros, como pepeElGroso o pepeKpo, ya que es muy posible que este mismo usuario sea usado posteriormente en el ámbito profesional. En cualquier caso, si ya tienen uno no hace falta hacerse otro.

  3. Ponerse en grupos de a dos, elegir un nombre de grupo y cargarlo en este formulario. Pueden usar la lista pdepjm para charlar entre uds ó bien verse las caras el jueves que viene y decidirlo en ese momento.

  4. Instalarse un entorno de desarrollo (algún editor para programar). Recomendamos fuertemente seguir las instrucciones de Fer, docente de miércoles a la noche, sobre cómo configurar el entorno Haskell.

  5. Lecciones 1 y 2 de Mumuki funcional.

  6. Avisarle todo esto a quien conozcan que haya faltado la primera clase.


PostData

El código de hoy:

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

}



1-1 of 1