Farabute / paradigmas

Grupo 4
MIT License
0 stars 0 forks source link

Mejores herramientas para ver el máximo y mínimo #8

Open sanuzzi opened 6 years ago

sanuzzi commented 6 years ago

Usen find + all Y que estén solo 1 vez

sanuzzi commented 6 years ago

Ok, ahora usan find y all, pero repiten: usuarioMasAdinerado unosUsuarios unBloque = fromJust(find(condicionMasAdinerado unBloque unosUsuarios) unosUsuarios )

usuarioMenosAdinerado unosUsuarios unBloque = fromJust(find(condicionMenosAdinerado unBloque unosUsuarios) unosUsuarios )

Y lo repetirían en peorBloque pero lo hicieron mal. El peorBloque tiene que devolver al peor bloque. No a una persona.

Más repeticiones: condicionMasAdinerado unBloque unosUsuarios unUsuario = all((elPrimeroEsMasAdinerado (aplicarBloque unBloque unUsuario)).aplicarBloque unBloque) unosUsuarios

condicionMenosAdinerado unBloque unosUsuarios unUsuario = all((elPrimeroEsMenosAdinerado (aplicarBloque unBloque unUsuario)).aplicarBloque unBloque) unosUsuarios

Y otra vez, habrían hecho lo mismo para el peorBloque.

Está bien que para buscar el mejor de todos los de una lista separen el problema en 2:

  1. Buscar el mejor de la lista (find, pasándole como condición ser el mejor de la lista).
  2. Lógica para saber si es el mejor de la lista (all en base a cierto criterio).

Lo que les falta, es hacer esos 2 puntos de forma bien genérica, recibiendo por parámetro el criterio en cuestión que va a usar all internamente. El criterio podrá ser:

Abstraigan, deleguen y reutilicen.