ジェネリック関数の型を推測するために scala シェルを使用することは可能ですか?
関数 Future.traverse (scala 2.10) の型を理解しようとしていました。完全なジェネリック型は
def traverse[A, B, M[_] <: TraversableOnce[_]](in: M[A])(fn: A => scala.concurrent.Future[B])(implicit cbf: generic.CanBuildFrom[M[A],B,M[B]], executor: ExecutionContext): Future[M[B]]
これは私にはほとんど読めないほど長いので、より具体的なタイプを試してみるのは良い考えだと思いました。だから私は試しました:
> :t (x : List[_]) => (Future traverse x) _
List[_] => ((Any => scala.concurrent.Future[Nothing]) => scala.concurrent.Future[List[Nothing]])
これは大いに役立ちましたが、List 型コンストラクター内で型を指定できればもっとよいでしょう。
:t (x : List[a]) => (将来のトラバース x) _
残念ながら(そして理解できるように)type a not found
エラーが発生します。
これを機能させる方法はありますか?