17/06/01 08:29:11.71 fZ4Ynj9f.net
文字化け修正:
Haskellどうのこうのというよりもまず
952:デフォルトの名無しさん
17/06/01 10:36:58.41 2zjIoc8f.net
>>949
>不明点は察するな、現実を話させろ
大学の研究室や学会では正しいが、2chっつーかネット越しの文字でやるには向いてない手法だな
手法は場によって選ぼうな?
あと自分が間違ってるかもしれないって懸念は常に持っとこうな。
953:デフォルトの名無しさん
17/06/01 10:39:52.18 2zjIoc8f.net
>>952
下段は今回のHaskellのことに限らず知ったかぶり悪循環に陥ることへのフェイルセーフな。
俺はHaskell詳しくないから知ったかかどうかわからんのだが一応。
954:デフォルトの名無しさん
17/06/01 11:08:27.45 Bx3/ibOs.net
治療法を察するな、症状を話させろ
Haskellを知ったかぶるのは大したことないが、医学を知ったかぶると命に関わる
955:デフォルトの名無しさん
17/06/01 11:26:50.36 UQSg1EaA.net
誤解の生じない自然言語が望まれる
956:デフォルトの名無しさん
17/06/01 11:27:26.76 HdFpeWhQ.net
ところで質問なんですが
Haskellの型クラスは裏でメソッド辞書を渡して実行時ディスパッチをするって読んだんですがこの理解で合ってます?
URLリンク(people.csail.mit.edu)
それともコールする関数の決定も何らかの最適化機構でコンパイル時にすませてしまうのでしょうか
957:デフォルトの名無しさん
17/06/01 11:48:38.71 Bx3/ibOs.net
>>956
C++のコンパイル時ダックタイピングと同じ
実行時ディスパッチではない
958:デフォルトの名無しさん
17/06/01 12:35:37.68 bubu+W4z.net
>>956
後者で合ってる
GHCの場合は最適化無しでランタイムにdictionary lookupするコードを生成
最適化でコンパイル時解決になる
指定なしなら通常は最適化される
959:デフォルトの名無しさん
17/06/01 12:56:45.70 sszEh+oH.net
>>958
なるほど
If the type of a function contains a class, then this
is translated into a dictionary that is passed at runtime.
The translation simply assures that the appropriate dictionaries
passed at run-time; ...
One drawback of our translation method is that it introduces
new parameters to be passed at runtime, ...
等々しつこく書いてあったのでてっきり今もランタイムかと。
その後コンパイル時に完結できるようになっていたんですね。ありがとうございます。
960:デフォルトの名無しさん
17/06/01 14:21:39.82 JVCP5RQG.net
>>959
念のため言うが、飽くまで一般の話だよ
上での言及のように例外なく、必ずcompile timeになるかどうかはわからない
普通に考えれば、呼出側だけでなく、モジュールに何か細工が必要だろうし
961:デフォルトの名無しさん
17/06/01 14:30:58.85 Ty12p446.net
>>959
調べてみたが、少なくともHaskell 2010ではCompile timeが保証されているようだ
というか88年の文献は、いくらなんでも古すぎないか?
962:デフォルトの名無しさん
17/06/01 19:59:34.59 vNOzF29i.net
他者と誤解なく分かりあえるようになるための共通言語を開発しよう
もちろん、人と人だけでなく、人とコンピュータも分かりあえる共通言語だ
それこそが次世代言語だ
963:あ
17/06/01 20:05:18.45 23mplHvr.net
>>952
ネット越しだからやるべきかとは。。
>>961
ヨコからだけどありがとう。参考になるわ。見てくる。
>>962
エスペラントを一歩すすめる時代か。
964:デフォルトの名無しさん
17/06/01 20:18:08.98 Dnfnpswj.net
>>963
やった結果がお前さんの現状なんだよな。
965:デフォルトの名無しさん
17/06/01 20:42:26.57 sszEh+oH.net
>>961
Haskell 2010 でもまだランタイムに依存しているみたいだけど違う?
URLリンク(stackoverflow.com)
966:デフォルトの名無しさん
17/06/01 22:45:39.05 14pfKSNM.net
あらゆるモダン言語で見るようになったmapとかflatmapっていうのはどこから生まれたものなの?
967:デフォルトの名無しさん
17/06/01 22:50:28.99 W7qZGWEB.net
LISPじゃね
968:デフォルトの名無しさん
17/06/02 00:08:33.62 lDZ3L3oh.net
>>965
ちょっと話が見えないんだが、もしかして回答してほしいのは
>URLリンク(people.csail.mit.edu)
に限定した話ではないのか?
保証については、再帰がない場合の話で、その参照先は>>959とは状況違う
その場合>>958 + >>960という回答になる
969:デフォルトの名無しさん
17/06/02 02:50:18.61 bQ6pitWP.net
再帰があっても深さを制限すればspecializeできるんじゃね
制限を超えたらエラーにするか、あるいはspecializeをやめたら無限に再帰できるか?
970:デフォルトの名無しさん
17/06/02 07:14:02.17 vc1fSB5M.net
>>968
あ、いえ、すみません
>>958+960 で理解の確認はできています
ありがとうございます
ただ一方で >>905 >>957 >>961 みたいな主張もあるようなので
最新の実装では型クラスを取り巻く状況もかなり違ってきているのかなと
971:デフォルトの名無しさん
17/06/03 09:45:16.91 1Cu2c1ce.net
これ互換性にあまり影響のない実装の変更だよね
それより互換性が完全になくなった変更を批判する方が建設的