Percursos
/
Haskell
Haskell
/
Exercícios
/
Escola primária
Escola primária

Escola primária

Fácil

Instruções

Dados os nomes dos alunos e o ano que frequentam, cria um registo para a escola.

No final, deves ser capaz de:

  • Adicionar o nome de um aluno ao registo de um ano
    • "Adiciona o Jim ao 2.º ano."
    • "OK."
  • Obter uma lista de todos os alunos inscritos num ano
    • "Que alunos estão no 2.º ano?"
    • "Por agora, só temos o Jim."
  • Obter uma lista ordenada de todos os alunos de todos os anos. Os anos devem ser ordenados como 1, 2, 3, etc., e os alunos de um mesmo ano devem ser ordenados alfabeticamente pelo nome.
    • "Quem está inscrito na escola neste momento?"
    • "Deixa-me pensar. Temos a Anna, a Barb e o Charlie no 1.º ano, o Alex, o Peter e a Zoe no 2.º ano e o Jim no 5.º ano. Então, a resposta é: Anna, Barb, Charlie, Alex, Peter, Zoe e Jim"

Repara que todos os nossos alunos têm apenas um nome (é uma cidade pequena, o que é que querias?) e cada aluno não pode ser adicionado mais do que uma vez a um ano ou ao registo. Na verdade, quando um teste tenta adicionar o mesmo aluno mais do que uma vez, a tua implementação deve indicar que isso é incorreto.

Dicas

Para completar este exercício, tens de criar o tipo de dados School e implementar as seguintes funções:

  • add
  • empty
  • grade
  • sorted

Vais encontrar uma declaração de dados de exemplo e as assinaturas de tipo já presentes, mas cabe-te a ti definir as funções e criar um tipo de dados, um newtype ou um sinónimo de tipo com significado.


Fonte

Uma sessão de programação em par com Phil Battos na gSchool
Editar via GitHub A ligação abre numa nova janela ou separador
Haskell Exercism

Estás pronto para começar Escola primária?

Inscreve-te no Exercism para aprenderes e dominares Haskell com 107 exercícios, e mentoria humana real, tudo grátis.