Composite函数有多个参数

时间:2016-09-17 08:35:10

标签: haskell functional-programming function-composition

这是我的计划:

boolToInt True  = 1
boolToInt False = 0

gt :: Int -> Int -> Int
gt x y = boolToInt $ (>) x y

我尝试使用gt重构gt = boolToInt . (>),但收到错误:

  

'(>)'适用于太少的参数

唯一的想法是curryuncurry,但我想它可能会使gtgt x y = boolToInt $ (>) x y更复杂。

我是否有一个更漂亮的功能性解决方案?

2 个答案:

答案 0 :(得分:2)

神奇的pointfree.io提出了以下解决方案:

gt :: Int -> Int -> Int
gt = (boolToInt .) . (>)

答案 1 :(得分:0)

你可以这样做:

(boolToInt .) . (>)