matchとwhen
garrigue先生の授業で聞いたやつ。
今まで知らなかったし、ざっと検索したかぎりでは資料が見つからなかった構文。
let rec subst env e = match e with | Var x when List.mem_assoc x env -> Num (List.assoc x env) | e -> map_expr (subst env) e;;
かけ算と足し算と変数が扱えるミニ言語の一部。
このmatch withの条件部で、whenを使う事で条件を細かく指定できるらしい。