Generalization of recursive function