X-Git-Url: https://git.xandkar.net/?p=cellular-automata.git;a=blobdiff_plain;f=polymorphism%2F001%2Fsrc%2Fpolymorphism.ml;h=cb65462af268e831b5181c39ef94a10d6d910845;hp=af46bc59c2b730286bc6535dfcb2de15ae7b36e8;hb=479645750e2782b77b97a06cd8142dcfb8d704dd;hpb=21c4909c309089428292ce2850f2d4751da5634d diff --git a/polymorphism/001/src/polymorphism.ml b/polymorphism/001/src/polymorphism.ml index af46bc5..cb65462 100644 --- a/polymorphism/001/src/polymorphism.ml +++ b/polymorphism/001/src/polymorphism.ml @@ -198,12 +198,30 @@ end module Terminal : sig + type color = [ `green + | `red + ] + + val string_with_color : string -> color -> string + val clear : unit -> unit + val reset : unit -> unit end = struct + type color = [ `green + | `red + ] + let ansi_code_clear = "\027[2J" (* Clear screen *) let ansi_code_reset = "\027[1;1H" (* Reset cursor position *) + let string_of_color = function + | `green -> "\027[0;32m" + | `red -> "\027[1;31m" + + let string_with_color s c = + sprintf "%s%s\027[0m" (string_of_color c) s + let clear () = print_string ansi_code_clear