给定学生的名字以及他们所在的年级,为学校创建一份花名册。
最终,你应该能够:
注意,我们这里的学生都只有一个名字(小镇嘛,还能怎样?),而且每名学生都不能在同一个年级或整份花名册里被重复添加。 如果测试试图把同一名学生添加多次,你的实现应当表明这种做法是错误的。
定义一个school元组来保存名单(如何在其内部存储学生由你决定),然后实现下面的词。
<school> ( -- school ):构造一个空的 school。add-student ( school name grade -- ? ):将name添加到grade。成功时返回t,如果name已经被添加过(无论是这个年级还是其他年级),则返回f,此时名单保持不变。roster ( school -- names ):所有学生,先按年级排序,再按名字的字母顺序排序。grade ( school n -- names ):年级n中的学生,按名字的字母顺序排序。