Slide 18
Slide 18 text
def List.get {α : Type u} : (as : List α) → Fin as.length → α
| cons a _, ⟨0, _⟩ => a
| cons _ as, ⟨Nat.succ i, h⟩ => get as ⟨i, Nat.le_of_succ_le_succ h⟩
Fin as.length は、0以上 as.length 未満の自然数(の集合)です。
これで、リストからn番目の要素を取ってくる操作を
例外を使わずに
必要ないデフォルト値を用意することなく
Option型を戻り値にすることなく
実装できます。とても美しい!大好き!
18