/ / Como faço para escrever uma conversão de função implícita para uma chamada de mapa em Scala - scala

Como faço para escrever uma conversão de função implícita para uma chamada de mapa em Scala - scala

Como escrevo uma conversão implícita para o código abaixo (simplificado)? Eu entendo que você precisa converter (Int) => B para (String) => B.

List(1, 2, 3).map { s: String => "_" + s }
// expected: List("_1", "_2", "_3")

Respostas:

4 para resposta № 1

Eu acho que a resposta do Simon funciona melhor. Caso você ainda queira fazer a conversão implícita, o seguinte deve fazer o truque.

implicit def convertFun[B](fun: String => B): (Int => B) = {
x: Int => fun(x.toString)
}

0 para resposta № 2

Na verdade você não precisa, apenas faça como;

List(1, 2, 3) map { i: Int => "_" + i }

0 para resposta № 3
 for(s <- List(1, 2, 3)) yield "_" + s

É isso que você está procurando?