compose
trait Function1[X, Y] { def compose[Z](g: (Z) => X): (Z) => Y }
compose cria uma função anônima que aceita um valor e retorna o resultado da aplicação da função g primeiro e depois dessa função nesse valor.
g