lean4-htt/tests/playground/rbmap.library.lean
2019-02-26 20:27:23 +01:00

14 lines
414 B
Text

@[reducible] def map : Type := rbmap nat bool (<)
def mk_map_aux : nat → map → map
| 0 m := m
| (n+1) m := mk_map_aux n (m.insert n (n % 10 = 0))
def mk_map (n : nat) :=
mk_map_aux n (mk_rbmap nat bool (<))
def main (xs : list string) : io uint32 :=
let m := mk_map xs.head.to_nat in
let v := rbmap.fold (λ (k : nat) (v : bool) (r : nat), if v then r + 1 else r) m 0 in
io.println' (to_string v) *>
pure 0