1.
the return of something, often repeatedly
2.
the use of repeated steps, each based on the result of the one before, to define a function or calculate a number
3.
a programming technique where a routine performs its task by delegating part of it to another instance of itself