dato questo frammento di codice OCaml:OCaml Int e negativi valori
let rec range a b =
if a > b then []
else a :: range (a+1) b
;;
Il Repl mi dice che si tratta di tipo è:
val range : int -> int -> int list = <fun>
Dandogli ingressi come ad esempio:
range 0 4;;
restituisce l'elenco:
- : int list = [0; 1; 2; 3; 4]
fornendo Tuttavia l'ingresso
range -4 2;;
dà l'errore:
Characters 0-5:
range -4 1;;
^^^^^
This expression has type int -> int -> int list but is here used with type int.
Cos'è questo cercando di dirmi?
Grazie per il suggerimento su "~" non ne ero a conoscenza. – chollida
beh, non c'è nulla di speciale su '~' l'intera funzione è definita, 'let (~ -) a = 0 - a', c'è una corrispondente funzione di negazione unaria per i float, sono sicuro che puoi indovina – nlucaroni