轨道
/
F#
F#
/
练习
/
小学
小学

小学

简单

说明

给定学生的名字以及他们所在的年级,为学校创建一份花名册。

最终,你应该能够:

  • 把学生的名字添加到某个年级的花名册中:
    • "Add Jim to grade 2."
    • "OK."
  • 获取某个年级里所有学生的列表:
    • "Which students are in grade 2?"
    • "We've only got Jim right now."
  • 获取一份包含所有年级所有学生的排序列表。 年级应按 1、2、3 等排序,同一年级内的学生应按名字的字母顺序排序。
    • "Who is enrolled in school right now?"
    • "Let me think. We have Anna, Barb, and Charlie in grade 1, Alex, Peter, and Zoe in grade 2, and Jim in grade 5. So the answer is: Anna, Barb, Charlie, Alex, Peter, Zoe, and Jim."

注意,我们这里的学生都只有一个名字(小镇嘛,还能怎样?),而且每名学生都不能在同一个年级或整份花名册里被重复添加。 如果测试试图把同一名学生添加多次,你的实现应当表明这种做法是错误的。

提示

在本练习中,以下 F# 特性会很有用:

  • Map类型将键与值关联起来。它与 .NET 的Dictionary<TKey, TValue>类型非常相似,但有一个重要区别:Map是不可变的。
  • 类型缩写用于为更复杂的类型创建一个描述性的别名。

来源

与 Phil Battos 在 gSchool 的一次结对编程
通过 GitHub 编辑 链接将在新窗口或新标签页中打开
F# Exercism

准备好开始 小学 了吗?

注册 Exercism,借助 18 个概念148 个练习 和真人导师指导,学习并掌握 F#,全部免费。