Tracks
/
Haskell
Haskell
/
Ejercicios
/
Escuela primaria
Escuela primaria

Escuela primaria

Fácil

Instrucciones

Dados los nombres de los estudiantes junto con el grado en el que están, crea una lista de estudiantes para la escuela.

Al final, deberías poder:

  • Agregar el nombre de un estudiante a la lista de un grado
    • «Agrega a Jim al grado 2.»
    • «OK.»
  • Obtener una lista de todos los estudiantes inscritos en un grado
    • «¿Qué estudiantes están en el grado 2?»
    • «Por ahora solo tenemos a Jim.»
  • Obtener una lista ordenada de todos los estudiantes de todos los grados. Los grados deben ordenarse como 1, 2, 3, etc., y los estudiantes dentro de un grado deben ordenarse alfabéticamente por nombre.
    • «¿Quiénes están inscritos en la escuela ahora mismo?»
    • «Déjame pensar. Tenemos a Anna, Barb y Charlie en el grado 1, a Alex, Peter y Zoe en el grado 2 y a Jim en el grado 5. Entonces la respuesta es: Anna, Barb, Charlie, Alex, Peter, Zoe y Jim»

Ten en cuenta que todos nuestros estudiantes solo tienen un nombre (es un pueblo pequeño, ¿qué esperabas?) y que a ningún estudiante se lo puede agregar más de una vez a un grado ni a la lista. De hecho, cuando una prueba intenta agregar al mismo estudiante más de una vez, tu implementación debe indicar que esto es incorrecto.

Pistas

Para completar este ejercicio necesitas crear el tipo de datos School e implementar las siguientes funciones:

  • add
  • empty
  • grade
  • sorted

Ya encontrarás una declaración de datos ficticia y las firmas de tipo en su lugar, pero depende de ti definir las funciones y crear un tipo de datos, un newtype o un sinónimo de tipo que tenga sentido.


Fuente

Una sesión de programación en pareja con Phil Battos en gSchool
Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
Haskell Exercism

¿Todo listo para empezar Escuela primaria?

Regístrate en Exercism para aprender y dominar Haskell con 107 ejercicios y mentoría humana real, todo gratis.