different kinds of functions example