パターン・マッチに計算式入れちゃいかん
掲題の件、そういうことです。はじめ
let a = 1 let c = (2, 3) let b = 4 match (a,b) with | (_, 1) -> "A" | ((fst c)-1, _) -> "B" | _ -> "C"
のように書いていたのだが、だめだった。
これは
let a = 1 let c = (2, 3) let b = 4 match (a,b) with | (_, 1) -> "A" | (var, _) when var=((fst c)-1) -> "B" | _ -> "C"
と書くことで、ちゃんと"B"が返ってくるようになる。
更に
| (var, _) when var=((fst c)-1) -> "B"
は
| (var, _) when var=(fst c)-1 -> "B"
と書くとだめ。演算子の優先順位の問題だろうか。