Introduction To Haskell
Function Composition


Imagine that you have two functions. The return type of the first function is the argument type of the second. When this is true, you can create a new function by pipelining the result of the first function into the second.

Here is an example,

myOdd = not . even

Here, the not and even functions are combined to make a function that returns True if a number is odd.


From the specification,

The operation functional composition combines two functions to get a new function.

Given two functions

  • f: A → B
  • g: B → C

function g o f, called the composition of g and f, is a function whose domain is A and co-domain is C.


In this example, we define two functions, f and g. Function f adds 5 to its argument. Function g squares its argument.

f :: Integer->Integer
f x = x + 5

g :: Integer->Integer
g x = x^2

comp :: Integer -> Integer
comp = f.g

The comp function is the composition of functions f and g. The result of function g is pipelined to function f.