Параметр unit ()
аналогичен параметру void
в C. Он обозначает функцию, которая не использует свой аргумент для вычисления чего-либо.
В вашем примере среда может быть изменена программой, поэтому она не может быть просто статическим значением, вычисленным в начале программы, но в то же время ее значение не зависит от аргумента.
Например:
let e1 = Unix.environment ();;
Unix.putenv "USER" "somebody_else";;
let e2 = Unix.environment ();;
e1 = e2;;
И вы можете видеть, что e1
и e2
различны, поэтому Unix.environment
не может просто иметь тип (string * string) array
, но должен быть функцией.