2

次の関数を検討してください。

let private actionPixel(pixelColour:Color) =
    match (pixelColour.A, pixelColour.R, pixelColour.G, pixelColour.B) with
        | (0uy, _, _, _) -> transparent
        | (alpha, red, green, blue) when red = blue && red = green && red <> 255uy ->
            Color.FromArgb(calculateAlpha (int alpha) (int red), 0, 0, 0)
        | _ -> pixelColour

私がやりたいのは、に置き換えること| (alpha, red, green, blue) when red = blue && red = green && red <> 255uy ->です| (alpha, value, value, value) when value <> 255uy ->。しかし、それを行うと、'value' is bound twice in this patternエラーが発生します。

コンパイラを満たすガードを単純化するために行を書き直す方法はありますか?

4

1 に答える 1