1

私は 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# の経験を超えています。

4

1 に答える 1