type 'a result =
Success of 'a
|Failed of exn
let finally f x cleanup =
let result =
try Success (f x) with
exn ->
Failed exn
in
cleanup ();
match result with
Success y -> y
|Failed exn -> raise exn
私が理解していないいくつかの場所があります:
最終的にの構文
exn は型ですが、パターン マッチングでどのように使用できますか? exnに失敗しましたか?
成功 (fx) は exn と一致しましたか?
クリーンアップと f x の関係。