エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
Array#mapの型がおかしくなる問題 - soutaroブログ
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
Array#mapの型がおかしくなる問題 - soutaroブログ
最近だとkinabaさんがGenerics > Template なところで話題にされてたのが記憶に新しいところだと思うの... 最近だとkinabaさんがGenerics > Template なところで話題にされてたのが記憶に新しいところだと思うのですが、つまりそういう問題です。 配列は要素の型Tでパラメータ化された型であると考えることができて、ここでArrayとか書くことにすると、mapの返り値の型はArrayとか別の型になります。で、mapの定義はArrayの定義の中に書くので、Non-uniform typeのできあがり。そういうわけで、C++のtemplateの展開が止まらなくなるのと同様に型推論が止まらなくなるので、しかたなく同じ型に推論するしかない、という。 ちなみにC++でmapとか書くと、ちゃんとコンパイル止まりますが、これはmapメソッドの型がtemplateになってて、つまりメソッドの型が多相型になれるから。残念ながらMLの型推論には、メソッドの型(返り値やパラメータの型、メソッドの型それ自体