鑑於這個片段的OCaml的代碼: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.
這是什麼想告訴我?
感謝您提供關於'〜'的提示,我不知道它。 – chollida 2009-10-23 14:24:35
好吧,'〜'沒有什麼特別的功能被定義,'let(〜 - )a = 0 - a',浮點數也有相應的一元否定函數,我相信你可以猜一下。 – nlucaroni 2009-10-23 15:38:13