Higher-Order functions

De acuerdo al paradigma funcional. 
La prioridad es mantener una función pura.
El siguiente ejemplo demuestra comó hacer una función de alto orden, mejor conocida como Higher-Order functions

Se puede apreciar una "función anidada" en el primer return, el cual a su vez nos muestra un segundo return.

En la funcion 'crearCorreo', se crea el primer parametro como proveedorDeCorreo, este crea el segundo parametro como nombreDeUsuario; posteriormente en el ultimo return, se concatenan ambos, cada uno con su respectivo template string ${}

Esto nos permite crear 2 funciones mas:
crearCorreoGmail
crearCorreoOutlook
Se inicializa la funcion en cada funcion con un string (gmail y outlook) que se cargara en el template string de 'provedorDeCorreo'

Finalmente se mandan a consola ambas funciones con el string que se cargara en el template string de 'nombreDeUsuario'

Comentarios