問題 28A

(中級 🌟🌟) サブリストの長さでリストのリストをソートせよ。

variable {α : Type}

def lsort (l : List (List α)) : List (List α) :=
  List.mergeSort l (fun l₁ l₂ => l₁.length ≤ l₂.length)

#guard lsort [["a", "b", "c"], ["a", "b"], ["a"]] == [["a"], ["a", "b"], ["a", "b", "c"]]
#guard lsort [[3, 1, 4], [1, 5, 9, 2], [6, 5, 3, 5], [1]] == [[1], [3, 1, 4], [1, 5, 9, 2], [6, 5, 3, 5]]