Java による高階型変数と Scala とジェネリクス - Togetter
Twitterのつぶやきマッシュアップメディア!
@togetter_jpをフォロー
マイページ
メニュー
設定
ログイン
トップ
ニュース
社会
地域
芸能・スポーツ
IT・Web
科学・教養
カルチャー
趣味
生活
仕事
ネタ・お笑い
ログ・日記
震災
311
iwj
放射能
復興
原発
ust
大喜利
速報
国内
アジア
アメリカ
ヨーロッパ
その他
政治
経済
国際
法律
環境
コラム
東京
東京近郊
北海道
東北
関東
北陸・信越
東海
近畿
中国・四国
九州・沖縄
海外
芸能
テレビ
ラジオ
野球
サッカー
ゴルフ
格闘技
競馬
モータースポーツ
その他
Android
Apple
インターネット
パソコン
モバイル
ガジェット
サイト制作
プログラミング
その他
科学
テクノロジー
エネルギー
数学
物理
宇宙
自然
人文
建築
心理
その他
アニメ
ゲーム
マンガ
アイドル
映画
音楽
書籍
演劇
ファッション
社会学
カメラ
車・バイク
電車
旅行
釣り
歴史
アート
デザイン
動物
その他
ハウツー
レシピ
グルメ
恋愛
マネー
節約
健康・医療
教育
ペット
起業・ベンチャー
経営
マーケティング
会計・人事
法務
就職・転職
語学・資格
ネタ
お笑い
大喜利
画像・動画
やってみた
その他
ログ
日記
思い出
雑談
メモ
飲み会
議事録
イベント
セミナー
復興
原発
支援
政府
自治体
トップ
>
科学・教養
> Java による高階型変数と Scala とジ..
2011/01/25 01:36:16
科学・教養
プログラミング
高階
java
scala
generics
+
Java による高階型変数と Scala とジェネリクス
@nagise
さんの記事『Javaによる高階型変数の実装』
http://d.hatena.ne.jp/Nagise/20110124/1295874192
から派生した型についての議論。ジェネリクスの見方、Scala との比較など。
by
PG_kura
37 fav
3557 view
Fav
37
お気に入りに登録ならここをクリック!
まとめ
メニューを開く
一括削除
型変数に型変数持てないのが辛い
なあ
返信する
RTする
ふぁぼる
nagise
2011/01/20 19:13:25
@nagise
…というのは型関数?(型を引数にとって型を返す関数)それとも高階型関数?(型関数を受け取ったり返したりできる関数)
返信する
RTする
ふぁぼる
ChihiroShiiji
2011/01/20 19:19:24
@ChihiroShiiji
Javaの場合、スコープがメソッドの型変数と、スコープがインスタンスの型変数があるわけですが、二階層に使いたい場合、型変数自身に型変数を持つ必要が出てくるんです
返信する
RTする
ふぁぼる
nagise
2011/01/20 19:53:39
@nagise
変数が変数を持つという表現は判りにくいので、型変数の解決を一種の関数適用(数学の意味で)と考えて、型変数を引数、引数に具体的な型を当てはめたもの(この置換で結果によりその型変数は消える)を結果という感じに整理して考えましょうかと…。
返信する
RTする
ふぁぼる
ChihiroShiiji
2011/01/20 20:05:07
@ChihiroShiiji
うーむ。そういう意味では2元の型変数なのかな
返信する
RTする
ふぁぼる
nagise
2011/01/20 20:14:03
blog書いた。「HttpSessionを型安全にする」
http://d.hatena.ne.jp/Nagise/20110122/1295664922
本題はその過程で出てくるジェネリクスの未解決問題の提示
返信する
RTする
ふぁぼる
nagise
2011/01/22 11:56:40
@daisuke_m
例の奴、うっかり型安全化に成功しちゃった。詳しくは夜にBlog書きますわ
返信する
RTする
ふぁぼる
nagise
2011/01/24 15:14:14
Javaだとインスタンスのインスタンス、言うなれば高階インスタンスのようなことが出来て、僕はこのプログラミングパラダイムが結構好きなんだけど、世の中にはパラダイムとしては認知されてないね
返信する
RTする
ふぁぼる
nagise
2011/01/24 19:54:54
blog書いた
http://d.hatena.ne.jp/Nagise/20110124/1295874192
Javaによる高階型変数の実装
返信する
RTする
ふぁぼる
nagise
2011/01/24 22:04:42
"その昔「たかしな」と読んだ人がいたとか、いないとか。" / 『Javaによる高階型変数の実装』 プログラマーの脳みそ
http://goo.gl/wRjxK
返信する
RTする
ふぁぼる
PG_kura
2011/01/24 23:22:48
俺は
型安全というのはコンパイル時に型の合わない代入を許容しないこと
だと思っていて、
「実行時にClassCastExceptionが出る」ような実装は型安全では無い
と思う。
返信する
RTする
ふぁぼる
yuroyoro
2011/01/24 23:37:54
要素型Tを型変数に取るMapがあったとして、そのコレクションに対するget(key)の結果型がkeyの値によって型付けされるためには、コンパイラはkeyに対してどんな型の値が入ってるか知らなくてはならない。つまり、コンパイル時にデータそのものが決定されている必要がある
返信する
RTする
ふぁぼる
yuroyoro
2011/01/24 23:40:46
@yuroyoro
今回の場合はキーがあらかじめ列挙できる想定でしたけどね。
列挙できないなら当然コンパイル時に解決しきれない
返信する
RTする
ふぁぼる
nagise
2011/01/24 23:43:55
@nagise
keyを列挙できる=型にエンコードできる、だと思います。静的な型付けでは外部の入力に対して型付けが出来ないの。列挙できるなら、そもそもコレクションクラスの形態を取る必要はなく、ふつーのクラスでもいいのではと思いました
返信する
RTする
ふぁぼる
yuroyoro
2011/01/24 23:47:31
@yuroyoro
そう。単品なら普通のクラスにしちゃえばいい。抽象化しようというのがそもそもやりすぎともいえる。動機はHttpSessionみたいなケースをどうにかしたかった訳なんだけど
返信する
RTする
ふぁぼる
nagise
2011/01/24 23:49:36
@nagise
やっぱりコンパイル時に決定できない計算に対しては、nominal typingによる制限しか表現の仕様が無い気がしますね。Vの型はある型以上であるとか、Keyはある型かそのサブタイプか、とか。それとも俺が知らないだけでもっといい型システムがあるのかな?
返信する
RTする
ふぁぼる
yuroyoro
2011/01/24 23:51:31
ヘビィなジェネリクスってのはたいていの場合、そこまで抽象化する必要はなく、
ちょっとだけDRY原則を破ったほうがトータルでコスト安であることが多い
返信する
RTする
ふぁぼる
nagise
2011/01/24 23:51:58
WicketのSessionクラスはどうだったかな。。 RT
@nagise
:
@yuroyoro
そう。単品なら普通のクラスにしちゃえばいい。抽象化しようというのがそもそもやりすぎともいえる。動機はHttpSessionみたいなケースをどうにかしたかった訳なんだけど
返信する
RTする
ふぁぼる
j5ik2o
2011/01/24 23:52:34
まぁ、やれないと思ってたら、やれないことはないって思いついちゃったってのが今回は強いかな
返信する
RTする
ふぁぼる
nagise
2011/01/24 23:53:19
@yuroyoro
この十数年未だにしっくり来てないんですけど、sessionに1こだけbean入れるって運用にして、そのbeanに必要(というか十分)な数のメンバをつけて。。。だと何が不味いんでしたっけ?
返信する
RTする
ふぁぼる
naka_aki_spl
2011/01/24 23:54:41
@naka_aki_spl
粒度しだいですけど、そういう実装は得てして重複した構造があちこちに散らばってDRYじゃなくなりがちですね
返信する
RTする
ふぁぼる
yuroyoro
2011/01/25 00:16:04
なんかこういう発想しちゃうのって最近少しHaskellかじってるからだろうか……
返信する
RTする
ふぁぼる
yuroyoro
2011/01/25 00:16:46
@yuroyoro
sessionを名前不安全にアクセスする通常のスタイルでも「構造」はそこに存在するわけですよね。コードに明示的に書けないせいでヤラしくなるという違いがある(だけ。。。てのもなんだが)で、同じなんじゃないのかなあと思うんです。
返信する
RTする
ふぁぼる
naka_aki_spl
2011/01/25 00:20:08
@j5ik2o
Wicketの場合、Sessionクラス自体自分で作るのだから、setAttributeとかgetAttributeとか関係なくて、自分でメソッド作るのだからタイプセーフ
ですよ。
返信する
RTする
ふぁぼる
t_yano
2011/01/25 00:30:30
型安全をタイプパラメータでやるのは限界があるので、やっぱちゃんとオブジェクト作るのがベストだと思う
よ、オブジェクト指向的にはね。
返信する
RTする
ふぁぼる
t_yano
2011/01/25 00:31:30
Content from Twitter
残りを読む(53)
ブログへ
iframe版
拡張版
張付けプレビュー
Fav
37
あわせて読みたい
こうして Scala プログラマが増えてゆくのです
Scala実践プログラミングを流し読み
Scalaはプログラミング初心者にオススメ?
ScalaにおけるJavaのインターフェースって?
ScalaのEitherでEither[L, Either[L, R]]の時にRだけを取り出す方法
powered by Preferred Infrastructure
コメント
Generics話をしてた背後(?)ではScala話が進行してたのかw
返信
ChihiroShiiji
2011/01/25 01:58:04
0
@nagise
さんの以下のTweetとかも関連かな?(VM話になってるので若干外れるかも?):
http://twitter.com/#!/nagise/status/29575625601716224
http://twitter.com/#!/nagise/status/29577575319736320
返信
ChihiroShiiji
2011/01/25 02:14:55
0
私(
@ChihiroShiiji
)以下のTweetとかも関連かな?(若干外れるかも?):
http://twitter.com/#!/ChihiroShiiji/status/29576595849089024
http://twitter.com/#!/ChihiroShiiji/status/29577549675761664
http://twitter.com/#!/ChihiroShiiji/status/29578949335973888
返信
ChihiroShiiji
2011/01/25 02:21:36
0
逆に私個人の潰えた過去のD論構想話はこのまとめにはいらないんじゃなかろうかと…(恥)。 (ちなみにD論はもう少し地に足のついた(?)地味目のテーマで今やりなおしてますんでw)
返信
ChihiroShiiji
2011/01/25 02:24:27
0
呟きを足したり引いたりしました。どもです。 > ChihiroShiiji さん
返信
PG_kura
2011/01/25 02:39:25
0
発端は
http://twitter.com/#!/nagise/status/28032338847858689
http://twitter.com/#!/ChihiroShiiji/status/28033845810958336
http://twitter.com/#!/nagise/status/28042467643228161
http://twitter.com/#!/ChihiroShiiji/status/28045352795906049
http://twitter.com/#!
返信
nagise
2011/01/25 10:47:27
0
http://twitter.com/#!/nagise/status/28047600942845952
の会話でそれをblogにまとめたのが
http://twitter.com/#!/nagise/status/28647205044748288
で、この問題をうっかり解決できた報告が
http://twitter.com/#!/nagise/status/29421699111845888
そして冒頭のblogの記事につながるという流れです
返信
nagise
2011/01/25 10:48:28
0
あと
http://twitter.com/#!/nagise/status/29571126216630272
は別件でこの話題とは関係ないです
返信
nagise
2011/01/25 10:50:02
0
コメントを足し引きしました。thx! > nagise さん
返信
PG_kura
2011/01/25 12:46:47
0
コメントを入力してください。
Twitterにも投稿する
みんなのおすすめ商品
商品を編集
おすすめ商品を登録する
プログラミングScala
Dean Wampler,Alex Payne
Scalaスケーラブルプログラミング第2版
Martin Odersky,Lex Spoon,Bill Venners
Programming in Scala
Martin Odersky,Lex Spoon,Bill Venners
Scala実践プログラミング―オープンソース徹底活用
小笠原 啓,尾崎 智仁,関 隆,水島 宏太,今井 敬吾
設定を変更する
まとめを作成する
プロフィール
フォローする
偏見ガッツリ( C++ & Scala )er。四六時中プログラム言語のことしか考えてませんが何か!! ※こやつは Reply, RT には反応しない可能性があります(特にRT)。 日常のメモを @kuramemo に向かって post してます。
PG_kura
link
twitter
rss
フォローされている
1
アップデート
まとめ
27
138
フリーランスのソフトウェアエンジニア
225
寸劇。朝まで生テレビ「魔法少女」
93
「Undo」をどう設計する?
お気に入り
154
コメント
6
新着のまとめ
ツイッタでつぶやいで学会発表要旨の添削を受けよう
new
第十八回アルゴリズム勉強会
new
@Rootportさんによる、Web怪談分析ツ..
new
テストに出る生活保護法 申請までの実践編!
new
5/29 #同題ssBSR まとめ お題「花言葉」
new
もっと見る
@togetter_jp
最近追加された商品
主に泣いてます(6) (モーニング KC)
おかもとまり 2011年 カレンダー
池上彰の宗教がわかれば世界が見える (文春新書)
世界で一番美しい種子図鑑
┌(┌ ^o^)┐ホモォ… USBメモリ 16GB(シルバー)
オススメ
マイスター
トゥギャ通
埼玉南部の奴らがみた変な虹の写真まとめ
up
某司法書士が作った珍妙なエコバッグについて
なんか素敵な無線LANが飛びまくってる
new
報道ステーション東電福島第一原発4号機危険性に..
「放射能汚染地域に住む人の血って、ほしいですか..
立憲主義を知らない自民党「憲法起草」委事務局長..
もっと見る
#バンギャあるある まとめ4
new
《大正時代の子供文化》
new
「東電社員年収、来年度46万円アップ 値上げ申..
new
#わたしのかんがえたすてきな無線LAN名 セレ..
new
#日韓W杯開幕当時の自分に言っても信じないこと..
new
みんなのかんがえたさいきょうの都道府県EVOL..
new
もっと見る
第80回「日食写真と昭和格差」
号外「みんなの金環日食まとめ―画像から教養ま..
第79回「虚構新聞とJリーグ」
第78回「コンプガチャとIT系かあちゃん」
第77回「びろーんと自宅警備隊」
第76回「Appleとパンツクッキー」
もっと見る
コメント