私は F# を使い始めたばかりで、次のおもちゃの問題を作成しました。これを行うために多くの構文を試しましたが、うまくいかないようです。
私は次のタイプを持っています
type Bar =
| DT of DateTime
| O of float
| H of float
| L of float
| C of float
そして、次の2つの例
let barPass =
[
O(13200.0);
H(13220.0);
L(13190.0);
C(13210.0);
]
let barFail =
[
O(13200.0);
H(13220.0);
L(13290.0); // low is greater than high which is invalid
C(13210.0);
]
高値が安値以上かどうかを確認する新しいメンバーを追加したいと考えています。さまざまなパターン マッチングを試してみましたが、これがうまくいかないようです。以下のコードは正しくありませんが、私がやろうとしていることを示すには十分です。
type Bar with
member x.HiLoCheck() =
match x with
| x when (H >= L) -> true // <- compiler will not allow this
| _ -> false
それをタプルに分解する必要があると思いますが、それも私の非常に限られた f# の経験を超えています。