說明
給定學生的名字以及他們所屬的年級,為學校建立一份名冊。
最後,你應該要能夠:
- 把學生的名字加入某個年級的名冊:
- 取得某個年級中所有學生的名單:
- 取得所有年級、所有學生排序後的名單。
年級應該依 1、2、3 等順序排序,同一個年級內的學生則應該依名字的字母順序排序。
- 「現在有誰註冊就讀?」
- 「讓我想想。
1 年級有 Anna、Barb 和 Charlie,2 年級有 Alex、Peter 和 Zoe,5 年級有 Jim。
所以答案是:Anna、Barb、Charlie、Alex、Peter、Zoe 和 Jim。」
請注意,我們的學生都只有一個名字(這是個小鎮,不然你想怎樣?),而且每個學生在同一份名冊或同一個年級裡都只能加入一次。
如果測試嘗試把同一個學生加入超過一次,你的實作應該指出這是錯誤的。
提示
這個練習會用到下列 F# 功能:
-
Map 型別會將鍵與值關聯起來。它和 .NET 的
Dictionary<TKey, TValue> 型別非常相似,但有一項主要差異:Map 是不可變的。
-
型別縮寫可以用來為較複雜的型別建立具描述性的別名。
出處
與 Phil Battos 在 gSchool 的一次結對練習