[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2ch.scのread.cgiへ]
Update time : 06/09 08:00 / Filesize : 265 KB / Number-of Response : 972
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

次世代言語議論スレ[Go Rust Kotlin Scala]第4世代



1 名前:デフォルトの名無しさん mailto:sage [2017/04/20(木) 04:43:27.12 ID:mNwXvrXv.net]
いざ、語ろうぞ。

スレタイ超過のため、一部省略。
Go, Erlang, Kotlin, etcもウェルカム。
Haskellは協議により次世代失格になりました

前スレ
次世代言語議論スレ[Go Rust Haskell Scala]第3世代
echo.2ch.net/test/read.cgi/tech/1488608741/

955 名前:デフォルトの名無しさん mailto:sage [2017/06/01(木) 11:26:50.36 ID:UQSg1EaA.net]
誤解の生じない自然言語が望まれる

956 名前:デフォルトの名無しさん mailto:sage [2017/06/01(木) 11:27:26.76 ID:HdFpeWhQ.net]
ところで質問なんですが
Haskellの型クラスは裏でメソッド辞書を渡して実行時ディスパッチをするって読んだんですがこの理解で合ってます?
https://people.csail.mit.edu/dnj/teaching/6898/papers/wadler88.pdf

それともコールする関数の決定も何らかの最適化機構でコンパイル時にすませてしまうのでしょうか

957 名前:デフォルトの名無しさん [2017/06/01(木) 11:48:38.71 ID:Bx3/ibOs.net]
>>956
C++のコンパイル時ダックタイピングと同じ
実行時ディスパッチではない

958 名前:デフォルトの名無しさん mailto:sage [2017/06/01(木) 12:35:37.68 ID:bubu+W4z.net]
>>956
後者で合ってる
GHCの場合は最適化無しでランタイムにdictionary lookupするコードを生成
最適化でコンパイル時解決になる
指定なしなら通常は最適化される

959 名前:デフォルトの名無しさん mailto:sage [2017/06/01(木) 12:56:45.70 ID: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 名前:デフォルトの名無しさん mailto:sage [2017/06/01(木) 14:21:39.82 ID:JVCP5RQG.net]
>>959
念のため言うが、飽くまで一般の話だよ
上での言及のように例外なく、必ずcompile timeになるかどうかはわからない
普通に考えれば、呼出側だけでなく、モジュールに何か細工が必要だろうし

961 名前:デフォルトの名無しさん mailto:sage [2017/06/01(木) 14:30:58.85 ID:Ty12p446.net]
>>959
調べてみたが、少なくともHaskell 2010ではCompile timeが保証されているようだ
というか88年の文献は、いくらなんでも古すぎないか?

962 名前:デフォルトの名無しさん mailto:sage [2017/06/01(木) 19:59:34.59 ID:vNOzF29i.net]
他者と誤解なく分かりあえるようになるための共通言語を開発しよう
もちろん、人と人だけでなく、人とコンピュータも分かりあえる共通言語だ
それこそが次世代言語だ

963 名前: mailto:sage [2017/06/01(木) 20:05:18.45 ID:23mplHvr.net]
>>952
ネット越しだからやるべきかとは。。

>>961
ヨコからだけどありがとう。参考になるわ。見てくる。

>>962
エスペラントを一歩すすめる時代か。



964 名前:デフォルトの名無しさん mailto:sage [2017/06/01(木) 20:18:08.98 ID:Dnfnpswj.net]
>>963
やった結果がお前さんの現状なんだよな。

965 名前:デフォルトの名無しさん mailto:sage [2017/06/01(木) 20:42:26.57 ID:sszEh+oH.net]
>>961
Haskell 2010 でもまだランタイムに依存しているみたいだけど違う?
https://stackoverflow.com/questions/28169119/is-the-dispatch-of-a-haskell-typeclass-dynamic#comment44713002_28170590

966 名前:デフォルトの名無しさん mailto:sage [2017/06/01(木) 22:45:39.05 ID:14pfKSNM.net]
あらゆるモダン言語で見るようになったmapとかflatmapっていうのはどこから生まれたものなの?

967 名前:デフォルトの名無しさん mailto:sage [2017/06/01(木) 22:50:28.99 ID:W7qZGWEB.net]
LISPじゃね

968 名前:デフォルトの名無しさん mailto:sage [2017/06/02(金) 00:08:33.62 ID:lDZ3L3oh.net]
>>965
ちょっと話が見えないんだが、もしかして回答してほしいのは
>https://people.csail.mit.edu/dnj/teaching/6898/papers/wadler88.pdf
に限定した話ではないのか?
保証については、再帰がない場合の話で、その参照先は>>959とは状況違う
その場合>>958 + >>960という回答になる

969 名前:デフォルトの名無しさん [2017/06/02(金) 02:50:18.61 ID:bQ6pitWP.net]
再帰があっても深さを制限すればspecializeできるんじゃね
制限を超えたらエラーにするか、あるいはspecializeをやめたら無限に再帰できるか?

970 名前:デフォルトの名無しさん mailto:sage [2017/06/02(金) 07:14:02.17 ID:vc1fSB5M.net]
>>968
あ、いえ、すみません
>>958+960 で理解の確認はできています
ありがとうございます

ただ一方で >>905 >>957 >>961 みたいな主張もあるようなので
最新の実装では型クラスを取り巻く状況もかなり違ってきているのかなと

971 名前:デフォルトの名無しさん [2017/06/03(土) 09:45:16.91 ID:1Cu2c1ce.net]
これ互換性にあまり影響のない実装の変更だよね
それより互換性が完全になくなった変更を批判する方が建設的






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<265KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef