2011-07-11 5 views
2

なぜそれが(ScalaのREPLで)私は、例えば、Scalaのマップには、 "_"

def double(d: Int) = 2*d 
(0 until 10).zipWithIndex.map(i => double(i._1)) 

か、単に

(0 until 10).zipWithIndex.map(_._1) 

を書くことができ、まだ私は書くことができないということです

(0 until 10).zipWithIndex.map(double(_._1)) 
error: missing parameter type for expanded function ((x$1) => x$1._1) (0 until 10).zipWithIndex.map(double(_._1)) 

+0

可能な重複:http://stackoverflow.com/questions/2173373/scala-foreach-strange-behaviour – sschaef

答えて

11

Scalaが展開しようとします_._1doubleの範囲で拡張しようとしました。だから、それはあなたがしかし

(0 until 10).zipWithIndex.map(double(i => i._1)) 

を持つようにしたいと考えて、それはまた、i => i._1が本当にdoubleの引数の型のいずれかに適合しないことを見ているので、文句やコンパイラを支援するタイプのヒントを与えることが求められます。この場合、正しい型定義は存在しない可能性があります。そのため、エラーメッセージは間違っています。

関連する問題