Muchos lenguajes de programación implementan como característica la "recursión" o "recursividad", que permite realizar operaciones de modo autorreferencial, tomando como entrada el mismo bloque de código (ya sea una estructura de datos, un objeto o una función) una y otra vez: