Dot operator in haskell with multi-parameter functions

dot-operator, haskell, pointfree

Solution

I wouldn't say this is simplier but here you go:

maxmin :: Ord a => a -> a -> a -> a                                             
maxmin = (. min) . (.) . max 

(Generated with `pl` tool from `lambdabot` http://www.haskell.org/haskellwiki/Pointfree)

lambdabot> pl maxmin a b c = max a (min b c)
maxmin = (. min) . (.) . max

Problem

I want to write a function point-free in haskell, to keep things simple lets say I want to make this function: ``` maxmin :: Ord a => a -> a -> a -> a maxmin a b c = max a (min b c) ``` I can improve this to ``` maxmin a b = (max a) . (min b) ``` but is there any way to get rid of a and b?

Original source