Nel libro 'Sviluppo di applicazioni con OCaml', c'è la seguente spiegazione per quanto riguarda i valori di ritorno:OCaml valori di ritorno
Poiché il valore che precede un punto e virgola viene scartato, Objective CAML dà un avvertimento quando non è di digitare unità.
# print_int 1; 2 ; 3 ;; Characters 14-15: Warning: this expression should have type unit. 1- : int = 3 To avoid this message, you can use the function ignore: # print_int 1; ignore 2; 3 ;; 1- : int = 3`
non capisco il motivo per cui sarebbe un problema che ha un valore 2
diferent rendimento rispetto unit
, perché la mia intenzione è di non tornare 2
, ma per tornare 3
. Per come la capisco, qualsiasi istruzione che preceda la mia ultima istruzione non è il valore di ritorno della funzione, quindi perché l'avviso?
Ho ricevuto questo avvertimento su tutto il mio codice e mi sta diventando chiaro che non capisco veramente come funzionano i valori di ritorno in OCaml.
Grazie per il vostro aiuto.
L'applicazione parziale comporterebbe un altro avviso :) – akoprowski
Questa è una nota interessante sull'annotazione del tipo, probabilmente è qualcosa che non avrei mai considerato. –
@akoprowski: no. 'let g() = lascia fxy = x + y in let _ = f 2 in f 1 2' – ygrek