2017-08-28 6 views
0

たとえば、以下の関数があります。関数がHaskellの特定の値と等しいかどうかをチェックする方法

function :: x -> y -> z -> v -> Bool 

機能は以下のように警備員にTrueに等しい場合、私は何かをしたい:

| something = do something 
| function == True = do something 
| something = something do something 

どのように私は正しい構文を使用してそれを実装することができますか?

+5

私は何か不足しているかもしれませんが、関数はどのように値に等しいでしょうか?あなたは関数の復帰を意味しますか? – Carcigenicate

+4

完全な使用例を追加してください。これはおそらく[XY問題](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)です。 「関数が「True」と等しいかどうかを比較することは絶対に意味がありません。([Church encoding](https://en.wikipedia.org/wiki/Church_encoding)のブーリアンとの理論的な議論を除く) – leftaroundabout

+0

ああそうです。私は関数の戻り値を意味します。 @Carcigenicate –

答えて

5

あなたのガードの中で単に関数を呼び出すことができます。 例:

bar :: Int -> Int 
bar x = x*x 

baz :: Int -> Int 
baz x = x+2 

baw :: Int -> Bool -- note: this returns a Bool instead 
baw x = x < 12 

foo :: Int -> Int -> String 
foo x y 
    | x > 2    = "a" 
    | bar x + baz y < 100 = "b" 
    | baw x    = "c" 
    | otherwise   = "d" 
関連する問題