Haskell では引数として別の関数を取り、新しい関数を返す関数のことをコンビネータと言います。(Real World Haskell p231 )
-- 引数を倍にして返す関数 ghci> let twice=(*2) ghci> twice 123 -- => 246 -- 引数を3倍にして返す関数 ghci> let thrice = (*3) ghci> thrice 123 -- => 369 -- 関数を引数として、「引数の関数」と「3を加算する関数」を合成して返す関数 ghci> let add3 f = f.(+3) ghci> add3 twice 1000 -- => 2006 ghci> add3 thrice 1000 -- => 3009