我想在haskell中编写一个无指向的函数,为了使事情简单,可以说我想创建此函数:
maxmin :: Ord a => a -> a -> a -> a
maxmin a b c = max a (min b c)
我可以改善这一点
maxmin a b = (max a) . (min b)
但是有什么方法可以摆脱a和b吗?
最佳答案
我不会说这比较简单,但是您可以进行以下操作:
maxmin :: Ord a => a -> a -> a -> a
maxmin = (. min) . (.) . max
(使用
pl
http://www.haskell.org/haskellwiki/Pointfree用lambdabot
工具生成)lambdabot> pl maxmin a b c = max a (min b c)
maxmin = (. min) . (.) . max