10
夜間に2.9.1と2.10の動作が異なる - 何が変更されましたか?対夜間に2.9.1と2.10のオプション[List [Int]]の相違
Welcome to Scala version 2.9.1.final (OpenJDK Client VM, Java 1.6.0_22).
Type in expressions to have them evaluated.
Type :help for more information.
scala> Some(3) map (x => List(x, -x)) flatten
res0: List[Int] = List(3, -3)
:
Welcome to Scala version 2.10.0.r26084-b20111129020255 (OpenJDK Client VM, Java 1.6.0_22).
Type in expressions to have them evaluated.
Type :help for more information.
scala> Some(3) map (x => List(x, -x)) flatten
<console>:8: error: Cannot prove that List[Int] <:< Option[B].
Some(3) map (x => List(x, -x)) flatten
この新しい 'flatten'は、Haskellのモナドの' join'に沿ったものです。その意図ですか? –
2.10にアップグレードすると誰もが徹底的な回帰テストをしてくれることを祈っています! –
オプション[Option [X]]をOption [X]にフラット化できますが、Iterableの場合はちょっと残念です。私はあなたが本当にそれがひどくそれを望んでいた場合、より柔軟なflattenは、いくつかのtypeclass機械と一緒に置くことができると思います... –