https://github.com/scalaz/scalaz/blob/v6.0.4/core/src/main/scala/scalaz/Foldable.scala
- しょうがないのかな?
- まぁ、ほんのちょっとの手間がかかるだけで、実用上それほど大きな問題ではないですが、なんとなく気になったので
- Scalazを直接いじって、もうちょっとうまく空気読んでくれるようにできないのか(RangeはIndexedSeq[Int]のサブ型なのだから、Rangeから直接foldMapなどのFoldableのメソッド呼べてもいいような?)
- 自分でちょっとだけいじって、それほど簡単ではなさそうなので諦めた
- だれかいい解決方法あるのなら教えて下さい
- もしくは、Rangeから、直接Foldableのメソッドを呼ぶことが、(Scalaの言語仕様とか現在のScalazのアーキテクチャが原因で?)不可能な理由をだれかわかりやすく説明してください
以下追記:
@halcat0x15a ところでこれ誰からも反応ないし、微妙に気になるんですが、なにか知りませんかURL
2012-04-14 17:22:36 via web to @halcat0x15a
@xuwei_k IndexedSeq直下のサブクラス(Rangeとか)は供給されてるけどそれのサブクラスには供給されませんね・・・・あまり考えたことなかったです。
2012-04-14 17:52:08 via web to @xuwei_k
@halcat0x15a おぉ、 Range.Inclusive だとダメだけど、Rangeならいけるのか、なにそれキモイ・・・
2012-04-14 17:55:01 via web to @halcat0x15a
Range自体は供給されてたのか。1 to 10 by 2 foldMap{3*} だといけるけど1 to 10 foldMap{3*} だと無理ェ・・・
2012-04-14 17:56:29 via web
Range自体は供給されてたのか。1 to 10 by 2 foldMap{3*} だといけるけど1 to 10 foldMap{3*} だと無理ェ・・・
2012-04-14 17:56:29 via web
ちなみにscalaz7だとtoIndexedSeqしても動かない。
Rangeの話、型クラスのポリモーフィズムとオブジェクト型階層のポリモーフィズムが噛み合わない例ですね。オブジェクト型階層の全てに型クラスのインスタンスを供給する必要がでてきちゃう。
2012-04-14 17:58:18 via web
だいぶ後になってからの追記
https://github.com/scalaz/scalaz/issues/349#issuecomment-17270403