这是我的计划:
boolToInt True = 1
boolToInt False = 0
gt :: Int -> Int -> Int
gt x y = boolToInt $ (>) x y
我尝试使用gt
重构gt = boolToInt . (>)
,但收到错误:
'(>)'适用于太少的参数
唯一的想法是curry
和uncurry
,但我想它可能会使gt
比gt x y = boolToInt $ (>) x y
更复杂。
我是否有一个更漂亮的功能性解决方案?
答案 0 :(得分:2)
神奇的pointfree.io
提出了以下解决方案:
gt :: Int -> Int -> Int
gt = (boolToInt .) . (>)
答案 1 :(得分:0)
你可以这样做:
(boolToInt .) . (>)