OCamlのオプション型は、何も返さない可能性のある関数がある場合に非常に役立ちます。しかし、これを多くの場所で使用するSome
と、ケースとNone
ケースを常に処理するのが面倒になりmatch ... with
ます。
例えば、
let env2 = List.map (fun ((it,ie),v,t) ->
match t with
| Some t -> (v,t)
| None ->
begin
match it with
| Some it -> (v,it)
| None -> failwith "Cannot infer local vars"
end) ls_res in
オプションタイプを簡潔に分解する他の方法はありますか?