Учитывая этот фрагмент кода OCaml:
let rec range a b =
if a > b then []
else a :: range (a+1) b
;;
Repl говорит мне, что это тип:
val range : int -> int -> int list = <fun>
Предоставление таких входных данных, как:
range 0 4;;
возвращает список:
- : int list = [0; 1; 2; 3; 4]
Однако, предоставляя ввод
range -4 2;;
выдает ошибку:
Characters 0-5:
range -4 1;;
^^^^^
This expression has type int -> int -> int list but is here used with type int.
Что это пытается мне сказать?