algoritmo funcional