次世代言語議論スレ[Rust Kotlin Haskell]第6世代 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2017/08/28(月) 21:53:37.12ID:5I+bTEeA
※前スレ
次世代言語議論スレ[Go Rust Scala Haskell]第5世代
http://mevius.2ch.net/test/read.cgi/tech/1497311647/
2017/09/19(火) 20:25:33.85ID:BJkNW1hw
コードで言われているのに自然言語で返すガイジ
Haskellの時に具体的に書いた結果無知を晒して大恥をかいたことがよほどトラウマになっているものと見える
2017/09/19(火) 21:17:03.18ID:OwH7JHtJ
前原も就任した後のTV出演で
モリカケ問題ばかりをやるきはないっていったそばから
モリカケ問題トーク始まったからなw
2017/09/19(火) 21:20:11.16ID:OwH7JHtJ
>>531
誤爆シマスタw
533
垢版 |
2017/09/19(火) 22:09:51.81ID:ORpK0dfd
>>529
それは独立した関数が最適ではない、と言う話ではないか。
何が最適化なんだよ。

>>530
別に恥とは思っとらんよ。勉強にはなった。
しかし余程、自分は恥だと思うんだろうなぁ、他人に対してそういう風に「恥ずかしいに違いない」と断定的に言うところ見ると。
余程恥ずかしいな、その思考回路が。
2017/09/19(火) 22:37:12.49ID:iY7FO3NM
>>533
ウダウダ言い訳してないで言われた通りコードで書けよ
2017/09/19(火) 22:39:47.10ID:zY0OeQa1
>>533
いやあれは流石に恥ずかしすぎ。あれを恥ずかしいと思わない思考回路がまず恥ずかしい。

勉強になったとかじゃなくて、最低限の勉強すらせずしったかしてたのがバレただけだろ美化すんな
2017/09/19(火) 22:40:22.21ID:6tkowvmv
なんで最適化の話になってんだか。
javaのGraal使って人間がハンドアセンブルしたマシン語をJITに使える新時代くるで。
いちいちjava bytecode生成しなくて済むよ。TruffleRubyが速い。
2017/09/19(火) 23:17:20.17ID:y3g67zRP
あの人にボロクソに論破されて発狂して何とか揚げ足取りたいガイジがおるようやね
2017/09/19(火) 23:20:27.89ID:0Xd47I4v
具体的にコード書くとやっぱりいろいろ明確になる。
2017/09/19(火) 23:27:50.73ID:4ouvyY05
>>533
直行する問題だと言ってるんだよ
等価なものは同じものとして扱ったほうが最適化の実装は容易になるだろ
540
垢版 |
2017/09/20(水) 07:03:02.13ID:0AKG+c7B
>>535
そーかー。
そら楽しかっただろうな、嗤うだけのお前はw

最適化の話は、話の発端>>502で、最初から言うとるぞ。
2017/09/20(水) 08:20:53.05ID:32CWNlSU
>>537
Haskellの件は擁護不可能だろ
こいつScalaとかOCamlとか関数型全般で知ったかしてたわけだし
2017/09/20(水) 08:21:44.46ID:32CWNlSU
ちな上で叩いてるやつとは別人だぞ
543
垢版 |
2017/09/20(水) 08:32:31.84ID:0AKG+c7B
最適化を知ったかしてる人にヤイヤイ言われる程度の事っしょ。
間違ってたら正せば良いし、積極的に正されてるつもりだぞ。
「間違ってるウゥ!」って指差して笑い転げるのは中学生くらいで終わらせとけよ。。
544
垢版 |
2017/09/20(水) 08:33:34.51ID:0AKG+c7B
>>530
ADDEQがどんな命令か知ってれば必要最低限のコードでは?
2017/09/20(水) 08:42:59.18ID:32CWNlSU
その文章のどこがコードなのか
自分が何言ってるか考えてからレスしろ
2017/09/20(水) 08:44:43.32ID:32CWNlSU
そして抽象度の異なる最適化という事さえ理解してない
547
垢版 |
2017/09/20(水) 08:54:13.08ID:0AKG+c7B
>>545
オペコードはコードでない、と。
面白いな。

>>546
理解してないんじゃない。
着地点が定義されてない最適化なんぞ、どのレイヤであっても無意味。
末尾再帰を解釈できるコンパイラと関数呼び出しとしてしか解釈できないコンパイラの話をしないうちに、
ループの最適化の話しても無駄でしょ。
2017/09/20(水) 09:02:56.02ID:lnxmN51d
誰もループの最適化の話なんかしてないでしょ
今の論点は、
・クロージャ変換によりガベージの増加を低減できる
・インライン展開により関数呼び出しのコスト低減を図ることも実行速度の向上には効果的である
・クロージャ変換を行うことによりインライン展開などのより低レベルな最適化が行えなくなることはない
・したがって、両者は直行する問題であり、それらを相反するものとするあDHDの懸念は誤りである
これでいいだろ?
2017/09/20(水) 09:12:41.36ID:meNSbSun
>>540
嗤うだけっていうのはただのディスやね。決めつけはニート認定みたいで、頭悪そうなのでやめといたほうがいいと思うよ

少なくとも、めっちゃ読みづらい知ったかぶり長々書かれて全然楽しくなかったぞ
あの時からずっとおまえのレスは普通に邪魔
550548
垢版 |
2017/09/20(水) 09:14:30.17ID:lnxmN51d
いやインライン展開を先にやっちゃったらクロージャ変換はできなくなるから正確には直行する問題ではないか
何事も負荷逆な操作をできるだけ後回しにするのは基本だよね
2017/09/20(水) 09:24:37.99ID:NK01lAwy
>>543
最適化知ったかぶりしてる奴って誰だよ

間違い自体は全然問題にされてなくて、Haskellの実装を知ってるとまで言っておきながら、その基本文法すらわかってなかった酷い知ったかぶりを責められてるのわかってる?
2017/09/20(水) 09:40:23.50ID:meNSbSun
あと全く知らないものを、まるで知ってるかのように振舞ってディスってたっていうのも問題だな
あんだけ散々ディスってたくせに知らんのんか〜いって思った

あれ以来、こいつは知ったかぶりする傾向があるから動くコード書くまで信頼出来んと思ってる
2017/09/20(水) 09:43:04.73ID:yYGRyM8i
そいつは極度の知ったか自己弁護野郎だから、みんなよく観察するように。
2017/09/20(水) 09:53:58.35ID:qH6V6v7k
どっちもどっちだな
2017/09/20(水) 10:04:00.22ID:OlAvSaNc
Cのマクロは人でも読めるコードを生成してくれるから良かった
だがマクロよりインライン関数の方がすごいんだという謎のマウンティングが始まった
人にコードを見せる習慣がなくなったのはそういう歴史の影響があるんだろう
2017/09/20(水) 11:12:40.40ID:qH6V6v7k
インライン関数は展開されないときもあるからマクロの方つかっちゃうな
2017/09/20(水) 11:30:55.10ID:meNSbSun
展開されない時って、コンパイラ判断として展開しないほうが良い時なのでは……?
いやコンパイラに任せるより手動で最適化したほうが良いような実力者なら知らんけど
2017/09/20(水) 11:36:58.65ID:qH6V6v7k
コンパイラーの判断は機械的に判断するから間違ってることも多いからな。
2017/09/20(水) 11:47:06.69ID:OlAvSaNc
実力者になった後で手動にするか、手動にした後で実力者になるか
現金で買うのとカードで買うのはどちらが賢いかというのに似ている
2017/09/20(水) 11:49:12.59ID:meNSbSun
はえー。俺はコンパイラより正しい判断が出来る自信はないから全部コンパイラに任せてるわ
いやすごいな。-O0でコンパイルして-O3並みの速度出せたりすんの?
2017/09/20(水) 12:03:51.93ID:qH6V6v7k
コンパイラの最適化は速度を優先するかメモリを優先するかバランスとってるからね。
俺みたいな速度最優先の少数派のことなんか考えてくれてないから自分でやるだけ。
2017/09/20(水) 13:32:21.76ID:CdIs01F3
-Ofast は速度最優先だと思ってたけどそうでもないのか
2017/09/20(水) 14:02:50.79ID:32CWNlSU
>>547
詭弁もいいとこだな
どこがコードなんだよ

オペランドすら記述していない上に、
結局大部分を文章で説明している
それでも、すべて支離滅裂な文よりはいくらかマシだが
2017/09/20(水) 14:07:16.46ID:32CWNlSU
そしてオペコードをコードと言いながら>>528で、最適化でコードが変わる事ではないという言い草
恣意的にレスしてるのがまるわかり
565デフォルトの名無しさん
垢版 |
2017/09/20(水) 14:50:54.31ID:rh0oGGav
あのー結局のところHaskellが良さそうだけどモナドっていうのが分からないとつかえないの?
それともモナドとか分からなくてもそこそこ普通に使えて、しばらく使ってたらモナドとかも雰囲気でなんとなく分かってくるものなの?

YouTuberで圏論の勉強会ビデオ四回目まで見たけどなんとなく理解はできたの
結局のところ集合と関数をより抽象化して記号化していろいろやってるんだよね?
2017/09/20(水) 15:00:39.54ID:f95dJFKd
モナドはまあ満たすべき性質ではあるけれど、別に理解してなくても問題ない。
コンパイラもモナド則をチェックするわけでもないし。
2017/09/20(水) 15:30:18.35ID:qH6V6v7k
俺はネットに無料で上がってる凄いH本よんだけど圏論何て一つもでてこなかったけど
モナドはわかったぞ。
568
垢版 |
2017/09/20(水) 15:44:48.04ID:0AKG+c7B
テンションすげえな。水曜なのに。
569デフォルトの名無しさん
垢版 |
2017/09/20(水) 17:03:51.19ID:66cdr9VM
モナドとか分からなくてもなんとかいけるんやー
ちょっとがんばっておぼえてみよーっと
ありがとー
570デフォルトの名無しさん
垢版 |
2017/09/20(水) 18:09:54.14ID:66cdr9VM
Ryzenとか出てきてこれからは6コア、8コアあたりまえになったらマルチスレッドとか大切になるんだとおもうの
それでちょびっとぐぐったらどうも関数型プログラミング言語はどれもマルチスレッドが得意らしいの
だからやっぱり関数型プログラミング言語が流行よね
そんな気がするの
2017/09/20(水) 18:21:45.19ID:8NhAmDw4
もうみんなコテハンつけたら?
ここにいるのって、どうせいつも同じ人間じゃね?
2017/09/20(水) 18:29:38.52ID:eqHukz4h
Haskellの並列ってあんまりマルチスレッドって認識してなかったけど、たしかにマルチスレッドあるな
2017/09/20(水) 18:35:57.38ID:OlAvSaNc
関数型の入門書はパターンマッチができるデータ構造ばっかり教える
クロージャやモナドはパターンマッチができない構造なのに
2017/09/20(水) 19:12:54.78ID:meNSbSun
そういや、なんでこのスレOCamlいないんだっけ?
2017/09/20(水) 21:15:05.03ID:+ftcwVio
関数型全般はさておきHaskell自体は並列処理書きづらいイメージがあるんだけど気のせいか
2017/09/20(水) 21:36:57.21ID:meNSbSun
あんまり詳しくないんだけど、Haskellの並列だと、いくつかの関数をそれぞれ1スレッド(プロセスだったかも?)に割り当てて並列で計算するのが印象に残ってる。
えらい簡単に並列化出来るんだなって思った記憶ある
なんだっけなあのライブラリ
577デフォルトの名無しさん
垢版 |
2017/09/20(水) 21:42:45.54ID:ej6oPx0l
純粋な関数は並列化簡単だからね
2017/09/20(水) 21:59:48.39ID:OlAvSaNc
インターネットとマルチスレッドを区別しないと
マルチスレッド派はガベコレ廃止してborrowチェックしないと
2017/09/20(水) 23:27:02.45ID:ocgI6/Nq
Kotlinの気に入らないところ
http://anopara.net/2017/09/16/kotlin%E3%81%AE%E6%B0%97%E3%81%AB%E5%85%A5%E3%82%89%E3%81%AA%E3%81%84%E3%81%A8%E3%81%93%E3%82%8D/
2017/09/20(水) 23:43:37.21ID:XmuyR82X
>>576
HaskellだとControl.Parallel.Strategiesを使うと
map関数が容易に並列化できてお手軽だった
ちゃんと使おうとするとWHNF(Week Head Normal Form)だとかの理解を要求されるので
そういう敷居の高さはあるけど
2017/09/21(木) 01:50:38.06ID:QW6vwaf/
>>579
この人はScala大好きのようだが
同様に誰かにのScalaここが嫌だと言われそうなレベルの話で
ふーんでおしまいだなあ。
2017/09/21(木) 05:23:51.87ID:r0JkAuLO
{ "aaa" }
このラムダ式の凄さが分かって無いな。
ルビーでいうとブロックが何個でも持てるるのと同じことなのにな
2017/09/21(木) 06:47:08.30ID:aDCr5zcn
>>582
どういうことだってばよ?
2017/09/21(木) 07:06:13.16ID:r0JkAuLO
>>579
に言っている
2017/09/21(木) 07:08:49.84ID:r0JkAuLO
わかりやすくいうと
javascriptのcallbackのfunction()という邪魔な奴が消えて見やすくなるということ
2017/09/21(木) 08:36:52.83ID:q4h3VbHC
Kotlinのパターンマッチは確かにC#の最新版にすら抜かれたダメな子だが、
nullのくだりは全く同意できないな
そもそもScalaにnull safetyなんか無くね
2017/09/21(木) 09:32:12.51ID:5FG4CErg
>>586
c#のパターンマッチはまだ中途半端なのに、それに抜かれたとはヤバイな
588デフォルトの名無しさん
垢版 |
2017/09/21(木) 12:19:06.27ID:xGEE8GqX
>>555
inlineの方がいいのは型チェックあるからだろ
2017/09/21(木) 12:30:12.98ID:r0JkAuLO
俺の場合引数が殆どdoubleかintだから型チェックは意味ないんだよな。
2017/09/21(木) 14:07:02.73ID:+Jhp3IyY
doubleかintしか使わないなら意味あるが、2つ使うなら意味あるだろ。
しかも、完全にじゃなくて殆どならなおさら。
型の意味わかってないだろ。
2017/09/21(木) 14:11:01.15ID:iqJkS7HX
JavaScript「型なんて飾りです」
2017/09/21(木) 15:01:32.35ID:gDFFhm4z
>>590
間違いやすくてかつ間違うと致命的なバグを生むからな
2017/09/21(木) 15:22:16.77ID:r0JkAuLO
一番間違えるのは引数の順番と数
2017/09/21(木) 15:43:39.40ID:SPES50ix
>>593
doubleとintの順番ミスったら大変だもんな
2017/09/21(木) 16:29:56.24ID:rIFSqMAF
C のデバッグしてると int -> double も明示的に変換するように設計されてりゃよかったのにと思うことが多い。
python3 の int と float をごっちゃにあえてしたのなんてありゃ失敗だろ。型を弱くしてどうすんだっていう。
2017/09/21(木) 18:44:57.78ID:V4ctP0WJ
次世代言語では、データとかを引数で渡すって方法に新たな工夫が欲しいね
2017/09/21(木) 20:03:14.13ID:1e+K8/4+
>>596
たとえば?
2017/09/21(木) 22:58:59.34ID:2mLwGNyW
doubleとintを間違える可能性は確かにあるけど
座標とかはdoubleとdoubleだったりintとintだったりするだろ
それを間違える可能性まで網羅しないと致命的じゃないか

型システムに都合の良い範囲を想定してしまったらかえって想定外の盲点が増えてしまう
2017/09/22(金) 01:01:11.41ID:yLA4yX5X
>>598
型システムがきちんとしてる言語であなたが考えてるような設計はしない
2017/09/22(金) 01:09:22.44ID:VcH/r1aN
intとdoubleを明確に区別するといえばOCamlだが、あれは流石にやりすぎと感じる。にわか感想だけど
2017/09/22(金) 03:19:07.10ID:g4HdW9MF
暗黙の型変換の邪悪さは経験積めばわかる
あとIntへの型変換はHaskellが一番ドイヒー
2017/09/22(金) 05:18:45.27ID:A2XKXMkJ
経験積めばわかる、ですむなら静的型いらねぇよ
2017/09/22(金) 05:39:47.03ID:g4HdW9MF
>>602
ソースの見通しが悪くなってバグの検出が難しくなる
2017/09/22(金) 07:53:43.74ID:eIMWXunI
IDE補完が効きまくるという点で静的型が好き。
phpStormとか使うとphpでも補完効きまくるようになるん?
2017/09/22(金) 08:34:49.37ID:ig88NjIH
>>601
10年以上Haskellメインで使ってますが、
あなたの言うIntへの型変換の「酷さ」が分かりません。

他言語と比べて何か問題あるのでしょうか。
2017/09/22(金) 09:10:52.08ID:eIMWXunI
>>605
Haskellメインの現場ってどういう環境です?研究職?
2017/09/22(金) 09:45:24.85ID:eeRMTLx0
Haskellみたいなのを研究に使っていたら逆にやう゛ぁいわ
メインはホビーだろ
2017/09/22(金) 09:49:39.95ID:Q4+Qj6om
まず初めに現場かホビーかの分岐があるのになぜ現場に限定するのか
2017/09/22(金) 11:00:09.62ID:g4HdW9MF
>>605
え?計算毎にいちいちNum経由にするのが酷くないって?
お前もしかしてHaskell使ったこと無いんじゃないの?
2017/09/22(金) 11:06:23.68ID:g4HdW9MF
Haskellメイン(仕事とは言ってない)

コンパイラとかの文字列処理や、モデルの妥当性検証とかに使うならまだしも、
数値計算でHaskellw
Repa位しか優位性ないだろ
2017/09/22(金) 11:40:01.90ID:ig88NjIH
>>609
Numは型ではなく型クラスです。

具体的には、どの型からInt型への変換が酷いのでしょうか。
Stream Fusion は働かないのでしょうか。
2017/09/22(金) 11:45:22.74ID:ig88NjIH
>>609
失礼、Stream Fusion と言うより、書き換え規則ですね。

書き換え規則が働けば、大抵の型変換は必要最小限のオーバーヘッドで行われる筈です。
2017/09/22(金) 11:47:26.66ID:g4HdW9MF
>>611
Numが型だとも型クラスでないとも言ってないし、
Stream Fusionだろうと変換はいるけど?
お前さっきから何知ったかぶってるの?
2017/09/22(金) 11:48:26.85ID:g4HdW9MF
>>612
「はずです」って、それ結局自分で書くだけだろ?
2017/09/22(金) 11:49:20.78ID:g4HdW9MF
こういう机上だけで語るクソ野郎がいるからHaskellは嫌い
2017/09/22(金) 12:01:58.15ID:Q4+Qj6om
例えばInt型の3って名前の関数をNumタイプクラスの3って名前の仮想関数に変換する関数で
変換してそれをDoubleを使う関数にいれるパターンだよな。
2017/09/22(金) 12:09:13.20ID:XD+YRvZx
だから具体的なコード書けって。変な勘違いしてるかもしれないんだから
2017/09/22(金) 12:33:30.94ID:A2XKXMkJ
仮想関数は酷いってのは常識になりつつある
オーバーロードはいいがオーバーライドは酷い
だがオーバーロードとオーバーライドを勘違いする非常識なやつもまだいっぱいいる
2017/09/22(金) 12:52:13.95ID:7Suyvrun
オーバーロードこそゴミだろ
型が柔軟になればなるほど邪魔になる
2017/09/22(金) 13:14:10.74ID:ig88NjIH
>>601
ある型の値をInt型の値へ変換する際にあなたにとって酷いことが起きる、
あるいはあなたにとって酷いプログラムコードになる、という話ですよね。

>>609
Int型への変換の話の中で「Numを経由する」という言い方を聞いて、
あなたが Num を型だと勘違いしていると思いました。
大変失礼しました。

ある型の値をInt型の値へ変換する際は一度Num型クラスのインスタンス型の値へ変換し、
それを改めてInt型の値へ変換しないといけない、
あるいはそういう型が多い。
あなたはそう思っているのでしょうか。

もしそのような場合でも、私書き換え規則があれば経由しないようにできると私は言いました。
標準ライブラリの中で定義されている型で、
頻繁にInt型への変換が必要と思われる型に対しては、
書き換え規則がライブラリ内に書かれています。
自分で書く場合も一度書けば済むだけみます。
これが酷いのでしょうか。

改めて聞きますが、具体的にはどの型の値をInt型の値へ変換する際に、
Num型クラスのどの型の値を経由しなければならないのでしょうか。
2017/09/22(金) 13:37:46.62ID:g4HdW9MF
>>620
>改めて聞きますが、具体的にはどの型の値をInt型の値へ変換する際に、
>Num型クラスのどの型の値を経由しなければならないのでしょうか。
だから全部自分で書いた話だろそれ
VanillaじゃIntとIntegerすら必要だろ

そんな事言ったら何らかの形で暗黙の型変換許してる言語全部そうだわ
お前マジで頭の病院行ったほうがいいんじゃねえの?
2017/09/22(金) 13:55:56.62ID:Q4+Qj6om
どっちもどっちだな。
両方病院言ったほうがいいかも。
2017/09/22(金) 14:14:32.59ID:A2XKXMkJ
言語の問題を医学部に丸投げするなよ
今ここで必要なのは法学部か文学部のような能力だという現実を受け入れろよ
2017/09/22(金) 14:19:32.05ID:ig88NjIH
>>621
Integer型の値をInt型へ変換する際に、
Num型クラスのどのインスタンス型にまず変換する必要があるのか、
その型を教えて頂けないでしょうか。
2017/09/22(金) 14:52:17.51ID:XD+YRvZx
具体的なコードを示せないのは、具体的なコードを示すとボロが出るからw
2017/09/22(金) 14:56:44.72ID:g4HdW9MF
>>624
はあ?Int側にするならNum Integer経由だろ?
お前さっきから関係ない話ばっかりじゃねーか
2017/09/22(金) 15:01:10.70ID:g4HdW9MF
>>625
書くまでもない気がするが一応な
https://ideone.com/MjF75Z
https://ideone.com/es7fao
2017/09/22(金) 15:10:56.24ID:XD+YRvZx
ほわ?そのコードの何が問題なんだ?
上も下も非常に妥当な挙動に見えるんだけど、いったいどうなって欲しいんだ?
2017/09/22(金) 15:11:44.73ID:g4HdW9MF
ああ、意図がわかった
こいつIntegralをNumって言った事とっかかりに揚げ足取りしたいんだな
IntegralはReal通してNumのサブクラスですよクソ野郎
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況