Je suis en suivant le tutoriel correspondant à un Modèle et fonctionnelle de la composition sur Scala compose
et andThen
méthodes. Il y a un exemple:
scala> def addUmm(x: String) = x + " umm"
scala> def addAhem(x: String) = x + " ahem"
val ummThenAhem = addAhem(_).compose(addUmm(_))
Lorsque j'essaie de l'utiliser, j'obtiens une erreur:
<console>:7: error: missing parameter type for expanded function ((x$1) => addAhem(x$1).compose(((x$2) => addUmm(x$2))))
val ummThenAhem = addAhem(_).compose(addUmm(_))
^
<console>:7: error: missing parameter type for expanded function ((x$2) => addUmm(x$2))
val ummThenAhem = addAhem(_).compose(addUmm(_))
^
<console>:7: error: type mismatch;
found : java.lang.String
required: Int
val ummThenAhem = addAhem(_).compose(addUmm(_))
Toutefois, cela fonctionne:
val ummThenAhem = addAhem _ compose addUmm _
ou même
val ummThenAhem = addAhem _ compose addUmm
Quel est le problème avec le code dans le tutoriel? N'est-ce pas la dernière expression de la même que le premier, sans parenthèse?