versao funcional, exceto para arrays