昨日発生していたサイトログインできない不具合は修正されております(詳細はこちら)

LINQからBoost.Variant、そしてF#へ至る流れまとめ

今日勉強になった一連のまとめ。結果F#最高ということでよろしいですか?w
1
otf @otf

Variantがあればいいんじゃないか? RT @cz75hiro: List<T>を返すメソッドを持つGenericなクラスは、意外と融通がきかない。List<Base>なら融通効くけどその場合はGenericがいらない子になってしまう。そういう設計が望ましいのかなぁ

2011-01-20 19:47:50
otf @otf

ちげぇw RT @noqisofon: ばりあんと? object ってことでいいの?

2011-01-20 19:52:15
otf @otf

それ RT @noqisofon: boost にあるよーなやつ? RT: otf: ちげぇw RT noqisofon: ばりあんと? object ってことでいいの?

2011-01-20 19:54:41
ヒロ @cz75hiro

@otf なんでもOKな設計は、どうしようもなくなったときの最終手段ですかねー。

2011-01-20 19:53:04
otf @otf

@cz75hiro なんでもありじゃないよ。 List<Variant<Dog, Cat>> Variantジェネリッククラスは自作するべし

2011-01-20 19:56:34
ヒロ @cz75hiro

@otf tuple的なクラスを実装ってことでしょうか。それだとサブクラスが増えるごとに実装がめんどくさくなりそうな…

2011-01-20 20:04:12
otf @otf

@cz75hiro tupleとはちょっと違うけど・・・w なんでめんどくさくなるん?オーバーライドで済むならList<Base>でいいと思いますしそうでなければVariantが一番楽ですよ

2011-01-20 20:11:49
ヒロ @cz75hiro

@otf List<Variant>だと各要素を取り出す時に、その要素の型がなんなのかを気にしながらコーディングする必要がある印象があります。あるクラスのサブクラスであることが前提ならList<Base>のほうが無難かなと。でもゆうすけさんもそう言ってますねw

2011-01-20 20:23:19
otf @otf

@cz75hiro Variantで型がなんなのか気にしなければいけないのはデメリットじゃなくてメリットだと思う

2011-01-20 20:30:31
ヒロ @cz75hiro

@otf Boostについて無知なのでList<object>と似たようなものと考えてましたけど、サンプルを見る限り「Listに突っ込む型をVariantで絞り込めるから、その型に関してだけ気にしておけばいい」っていう感じでしょうか?それならメリットになりそうですねー。

2011-01-20 20:36:05
ぐるぐる系SQL @bleis

@cz75hiro Variant<int, string>という型をVとすると、Vにはintかstringしか入らないのです。どちらか片方。型パラメーターを10個くらいまで用意しておくといい感じ

2011-01-20 20:43:09
ぐるぐる系SQL @bleis

@cz75hiro んで、指定した型のどれが入っているかを確認して値を取り出すのではなく、ラムダ式を渡して処理してもらいます

2011-01-20 20:47:02
ぐるぐる系SQL @bleis

@cz75hiro さっきの例だと、 v.Match( (int i)=>i.ToString, (string s)=>s ) みたいな感じで

2011-01-20 20:49:17
ヒロ @cz75hiro

. @bleis @otf 概ね理解できました!でもVariantの型パラメータを増やしたくなったとき(Variant<T1>→Variant<T1,T2>に)、そのリストを使ってる全クラスが修正になるような気が…

2011-01-20 20:48:47
ヒロ @cz75hiro

@bleis あーラムダですか。それなら拡張しても取り出す型は自由に選べるますね。うまく作ってるなぁ

2011-01-20 20:50:13
ヒロ @cz75hiro

@otf 取り出す要素を頭からなめるものだと思ってました。ラムダ式で取り出す要素を指定できるんですね(^^;

2011-01-20 20:53:36
otf @otf

@cz75hiro うむ。イケメン先生のおっしゃられるとおりです。

2011-01-20 20:55:50
ヒロ @cz75hiro

C#にVariant的な物無いのかなーっと。ぐぐる

2011-01-20 20:55:25
otf @otf

@bleisが人の弱みに付け込んで布教をしている

2011-01-20 20:59:52
ぐるぐる系SQL @bleis

@otf ここですすめなかったらいつすすめるの、ってくらいバッチリなタイミングじゃん!

2011-01-20 21:01:54