2017-08-28 59 views
0

例如,我有一個函數如下。如何檢查函數是否等於Haskell中的特定值

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

我想要做的東西,如果功能等於真像後衛:

| 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)。比較「函數是否與」真「相等(除非在[教會編碼](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" 
相關問題