playground/coq/nat2str.v

33 lines
527 B
Coq

Require Import String
Open Scope String.
Definition digit2str (n:nat):string:=
match n with
| 0 => "0"
| 1 => "1"
| 2 => "2"
| 3 => "3"
| 4 => "4"
| 5 => "5"
| 6 => "6"
| 7 => "7"
| 8 => "8"
| 9 => "9"
| _ => ""
end.
Fixpoint nat2str_helper (n:nat) : string :=
match n with
| O => ""
| _ =>
let digit := Nat.modulo n 10 in
(nat2str_helper (Nat.div n 10)) ++ (digit2str digit)
end.
Definition nat2str (n:nat) : string :=
match n with
| O => "0"
| _ => nat2str_helper n
end.