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.»
- «Listo.»
- 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 tienen un solo nombre (es un pueblo pequeño, ¿qué esperabas?), y ningún estudiante puede agregarse más de una vez a un grado ni a la lista.
Si un test intenta agregar al mismo estudiante más de una vez, tu implementación debe indicar que eso es incorrecto.
Pistas
Para este ejercicio te resulta útil la siguiente funcionalidad de F#:
- El tipo Map asocia claves con valores. Es muy similar al tipo
Dictionary<TKey, TValue> de .NET, pero con una diferencia importante: Map es inmutable.
- Una abreviatura de tipo se usa para crear un alias descriptivo de un tipo más complejo.
Fuente
Una sesión de programación en pareja con Phil Battos en gSchool