2017-08-28 60 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" 
相关问题