val i = Some(<foo/>)
<bar>{for(o <- i) yield o}</bar>
奇妙な値を返します:
res3: scala.xml.Elem = <bar>Some(<foo/>)</bar>
明らかに意図した結果ではありません。次のように書くことで回避できます。
<bar>{for(o <- i.toList) yield o}</bar>
意図した結果を返します。
<bar><foor></foo></bar>
しかし、なぜこの変換を行う必要があるのでしょうか? i
List に変換する代わりに、キャストする必要がある特性はありますか?