OCaml中分号和`let _ = ... in`的区别

问题描述 投票:0回答:0

On this site 它说分号在语义上与

let _ = ... in
相同,但在以下代码中并非如此。此代码打印
None
End
:

let m = None

let () =
  let () = match m with
    | None -> print_endline "None"
    | Some file -> print_endline "Some"
  in
  print_endline "End";

但是这段代码只打印

None
.

let m = None

let () =
  match m with
    | None -> print_endline "None"
    | Some file -> print_endline "Some"
  ;
  print_endline "End";

为什么?分号和

let in
有什么区别?

ocaml
© www.soinside.com 2019 - 2024. All rights reserved.