私はF#にかなり慣れていないので、2つの値を (match ... with ...) 構文で比較したかった
次のように 2 つの値を比較しようとすると、問題が発生します。
let value1 = 19
let isValue1 y =
match y with
| value1 -> y + 1
| _ -> y
コードの「| _ -> y」の部分に到達しないという警告が表示されます。どうしてこれなの?
関数を希望どおりに機能させるために、次のことができることを知っています。
let value1 = 19
let isValue1 y =
match y with
| _ when y = value1 -> true
| _ -> false
これも同様に機能します
let value1 = 19
let isValue1 y =
match y with
| 19 -> true
| _ -> false
なぜそれができないのか、そしてマッチが実際にどのように機能するのかが気になります。