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.