這是我的計劃:複合函數有多個參數
boolToInt True = 1
boolToInt False = 0
gt :: Int -> Int -> Int
gt x y = boolToInt $ (>) x y
我嘗試重構gt
與gt = boolToInt . (>)
,但得到的錯誤:
‘(>)’ is applied to too few arguments
來找我唯一的想法是curry
和uncurry
,但我想這可能會使gt
比gt x y = boolToInt $ (>) x y
更加複雜。
我有更漂亮的功能解決方案,這種組成?
見http://stackoverflow.com/q/20279306/246886 –
可以uncurry '(>)',然後重新結果。 'gt = curry(boolToInt。(uncurry(>)))'。 – chepner