前述の通り,関数をパラメータとして取るメソッド(mapやforeachの様な)は中値記法で呼び出すべきですが,次の様に呼び出すことも可能ではあります。
names.map { _.toUpperCase } // 誤り!
この呼び出し方は標準としては到底受け入れられません!というのも,メソッドチェインの場合に問題があるからです。
// 誤り!
names.map { _.toUpperCase }.filter { _.length > 5 }
// 正しい!
names map { _.toUpperCase } filter { _.length > 5 }
これらは共に意図通りに動作しますが,前者は,極めて非直観的なScalaの文法の欠点を不当に利用したものです。途中の{ _.toUpperCase }.filterの部分を取り出して見ると,filterメソッドを関数値に対して呼び出している様に見えますが,実際には関数値をパラメータに取るmapメソッドの結果に対してfilterメソッドを呼び出しています。この構文はRubyではたびたび混乱の元になり,使用が推奨されていませんが,Scalaでは絶対に使いません。