Lisp'den OCaml'a geldiğimde, işlevlerin ne zaman döndüğü ve ne zaman gelmediği konusunda kendimi çok şaşırıyorum. Sihirli teklifimi özledim! Neyse ki, çoğu zaman, OCaml, değerlendirilen bir işlev istediğimde ve yapmadığım zaman otomatik olarak biliyor. Bununla birlikte, sık sık kendim gibi bir işlevin dönüş değerini, aşağıdaki gibi bir ifade ifadesinde atamaya çalışıyorum.OCaml'de bir fonksiyonun geri dönüş değerine atanması garanti edilmesi
let start = Sys.time in
(*
* do something here
*)
;
let ending = Sys.time in
Printf.printf "did something in %f seconds\n" (ending -. start)
ama sonra ocamlc başlangıç ve bitiş Bana söylemen
Error: This Expression has type unit -> float
but an expression was expected of type float
şikayet, Sys.time
için Sys.time
değil dönüş değeri bağlıdırlar.
Bu davranış, OCamly almaya çalışmıyorum mu? Başka bir şey yapmak mı isterim? Tamamen açık bir şey eksik mi?