트랙
/
Haskell
Haskell
/
연습 문제
/
학교 명부
학교 명부

학교 명부

쉬움

지침

학생들의 이름과 그 학생이 속한 학년이 주어지면, 학교 명단을 만들어요.

최종적으로 다음을 할 수 있어야 해요.

  • 특정 학년의 명단에 학생 이름을 추가하기
    • "2학년에 Jim을 추가해 주세요."
    • "네."
  • 특정 학년에 등록된 모든 학생 목록 가져오기
    • "2학년에는 어떤 학생들이 있나요?"
    • "지금은 Jim 한 명뿐이에요."
  • 모든 학년의 모든 학생을 정렬된 목록으로 가져오기 학년은 1, 2, 3 순으로 정렬하고, 같은 학년 안에서는 이름을 알파벳순으로 정렬해야 해요.
    • "지금 학교에 등록된 학생은 모두 누구인가요?"
    • "생각해 볼게요. 1학년에 Anna, Barb, Charlie가 있고, 2학년에 Alex, Peter, Zoe, 5학년에 Jim이 있어요. 그래서 답은 Anna, Barb, Charlie, Alex, Peter, Zoe, Jim이에요."

참고로 이 학교 학생들은 모두 이름이 하나뿐이고(작은 마을이니까요, 뭘 어쩌겠어요?), 각 학생은 같은 학년이나 명단에 두 번 이상 추가할 수 없어요. 실제로 테스트에서 같은 학생을 두 번 이상 추가하려고 하면, 구현이 이것이 잘못되었음을 알려 주어야 해요.

힌트

이 연습 문제를 완료하려면 School 데이터 타입을 만들고 다음 함수들을 구현해야 해요:

  • add
  • empty
  • grade
  • sorted

더미 데이터 선언과 타입 시그니처는 이미 준비되어 있지만, 함수를 정의하고 의미 있는 데이터 타입이나 newtype, 또는 타입 동의어를 만드는 일은 직접 해야 해요.


출처

gSchool에서 Phil Battos와 함께한 페어 세션
GitHub에서 편집 링크가 새 창이나 탭에서 열려요
Haskell Exercism

학교 명부 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 Haskell 트랙을 연습 문제 107개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.