1 名前:デフォルトの名無しさん mailto:sage [2017/06/13(火) 08:54:07.99 ID:O1HnBMDk.net] いざ、語ろうぞ。 スレタイ超過のため、一部省略。 その他もウェルカム。 前スレ 次世代言語議論スレ[Go Rust Kotlin Scala]第4世代 mevius.2ch.net/test/read.cgi/tech/1492631007/
112 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 22:57:17.16 ID:8QFIS7Xe.net] やっぱり本気でパイプのようなストリーム処理がLLで書けないと思ってるのかな 今時はラムダなどのストリーム処理なんてJavaですら標準でついてるってのに >>108 何が「ほんまもん」なんですかね もしかしてどっちもO(1)で一緒とか言いたいの? 空間計算量って、それ自体はO-notationでの表記のことじゃないぞ?
113 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 23:05:34.61 ID:CvCdLd6J.net] 「副作用で世界がどんどん変わって行くのを俺が全部コントロールして阻止しなければならない… そうでなければこの世界はバラバラになってしまう…」 「どうしたんですか?先輩」(もぐもぐ 「おお後輩!…なんだそれ?」 「売店がパンじゃなくて弁当扱い出したんですよ ゴミかさばるから売店とこで捨てろですって。 まぁ、どうせ僕が一括して持ってくんでしょうがw」 「後輩」 「はい?」 「カレーある?」 「たしか」 「じゃあ、それ一つ」 「はい」
114 名前:デフォルトの名無しさん [2017/06/25(日) 23:09:52.30 ID:GaCuKOAB.net] ヤバいこいつ論点分からず突っかかってる
115 名前:デフォルトの名無しさん [2017/06/25(日) 23:11:04.64 ID:pYBZiqDJ.net] >>107 うーん。。。出力先もだけど、差し替え易さとか、処理対象の単位を行き来し易いとか。。。かな? ループだとファイル単位、行単位、文字単位って決まっちゃうと、中々そこから抜け出せないけど、例えば複数ファイルの行で一番長い行を調べたいとする。 (実はCで上の逆順コード書く際のバッファの大きさを決めるために書いた) 最初、トーナメント形式に各ファイルで一番長い行出させて、そこからさらに一番を決めて出力してた。 んで、途中で全ファイルの行の長さ出た時点で一位決められるじゃん。と、数値のリストのリストを平坦化して一気に一位決めた。 そう言うループじゃ無くて、悪魔でリストのリストを受け取って〜。。。って考えると簡単に行単位とかそう言う枠を超えられる。 LLでも出来るだろうけど、思いつき易い。
116 名前:デフォルトの名無しさん [2017/06/25(日) 23:12:43.68 ID:pYBZiqDJ.net] >>110 いあ、書けるでしょうよ。 ただ柔軟性?こう、スタイルが決まっててあんま動かせない感じを受ける。
117 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 23:15:11.08 ID:8QFIS7Xe.net] >>109 言いたい事はわからんでもないけど、そんなにhaskell使いやすい? 自分もHaskellは複雑な構造の解析とか、何か本質的な部分の問題解くときにghci使う事あるけどさ、 実装はやっぱりpythonとかのが楽ってなったよ Stackやcabalの設定編集も面倒だしコンパイル遅いし mapM_あたり使うような物で純粋を目標にしてると、本末転倒になる事が多いし
118 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 23:17:22.59 ID:8QFIS7Xe.net] >>112 ああなるほどね 難癖つけてる奴の同類か
119 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 23:27:50.72 ID:8QFIS7Xe.net] >>114 ポイントフリースタイルとの組み合わせは確かにHaskell特有だけど、 個人的には実装はIOの文脈で、パイプ演算子とパターンマッチを使える F#やLiveScript(altJS)のような言語方が楽だと思うぞ
120 名前:デフォルトの名無しさん [2017/06/25(日) 23:45:27.87 ID:pYBZiqDJ.net] >>115 なんつーか、さすがにGUIとかはC#使うわってなるけど、確かにコンパイル遅くて微妙に感じもしたけど、上のライブラリみたくガンガン関数化すればPythonでループのシーケンスにargv[1:]ってしてー。。。 逆順だとReversed(list(sys.argv[1:]))でー。。。とか調べないとな場面が度々ね。 んで、毎回複数ファイルから読み込まるのにforって書いて、行毎だとまたfor。。。 Haskellもライブラリ作る前は似たり寄ったりだったけど、ライブラリ書いてからはmfputにファイル名のリストと、各ファイル向け(1ファイル向け)に処理させたい関数渡すだけで大体のツール作れる。 多少パターンが特殊でもmfptnで対応出来る。 ループ的なのを関数に押し込んで、開きたいファイルと処理させたい関数だけ気にしてれば良くなった。 (逆にサポート外のパターンには無力だが。関数化は使い方も規定しちゃうから仕方ない) Pythonだとあんまここまでライブラリ化出来る気がしない。。。 PythonやRubyの書き捨てでも楽だって思ってたけど、多分もう戻れない。
121 名前:デフォルトの名無しさん [2017/06/25(日) 23:47:28.90 ID:GaCuKOAB.net] まずなー>>98 に>>100 をいっちゃう時点でなー >>96 で「空間計算効率が良いなんて一言も言ってない」って明言されてるにも関わらずこんなこと言ってる時点で読解力お察しだからなー
122 名前:デフォルトの名無しさん [2017/06/25(日) 23:54:14.28 ID:GaCuKOAB.net] 相手の意図を組めないという点ではエンジニアガイジと同類っぽいなー
123 名前:デフォルトの名無しさん [2017/06/26(月) 00:09:44.62 ID:jZyN4LOL.net] そう。 空間計算効率の話自体はしてても、Haskellと同程度にライブラリ化したらLLが今までより空間計算効率が落ちる(もしくはイテレータ地獄になる)って言ってるだけで、Haskellの空間計算効率が良いなんて言ってない。
124 名前:デフォルトの名無しさん mailto:sage [2017/06/26(月) 00:15:26.29 ID:f2qWRibY.net] 初めてKotlinで書いてみたけど意外と悪くないな 驚きが非常に少なく無理がない C#みたいな天才肌とは違ってとにかく無難でつまらない印象だけど、 Javaからの乗り換えという意味では最適なとても筋のいい言語だと思うわ import java.io.File fun Sequence<String>.grep(w: String) = this.filter { w in it } fun redstr(w: String) = "赤(${w})" fun counsnum(i: Int, xs: String) = "%4d:%s".format(i, xs) fun numbering(lines: Sequence<String>) = lines.mapIndexed({ i, xs -> counsnum(i + 1, xs) }) fun main(args: Array<String>) { val (w, fs) = args val lines = File(fs). bufferedReader().lineSequence() numbering(lines).grep(w).map({ redstr(it) }) }.forEach({ println(it) }) }
125 名前:デフォルトの名無しさん [2017/06/26(月) 02:35:16.31 ID:jZyN4LOL.net] >>122 kotlinのコードこのスレで初めて見たし、他のスレでもここまでまともなの見なかった。 thanks. わざわざ見つかった文字列を赤文字にする所まで再現してくれるとは。。。 もうHaskellに惚れちゃってるからメインにならんだろうけど、確かに筋は良さそう。 GUIなコード書くのには良いかもしれんね。 行単位で受け取って行単位で出力する辺り、やっぱ手続き型言語と感じるけど。 だからこそ効率が良くて、そこを意識するからこそ柔軟性の限界感じる。 HaskellはStringが遅いだけで、バッファ効率自体は多分良い。 行単位とかじゃ無くて目一杯バッファに入れてると思う。 ByteString慣れないと説得力無いんだろうけど。。。 面倒いなぁ。。。 そこまでしないと勝負にならないなら、あんたの勝ちでいいよって思うもん。 手早く書けて使える速度なら充分だし。
126 名前:デフォルトの名無しさん mailto:sage [2017/06/26(月) 04:34:26.65 ID:z8x4rlt1.net] >>119 明言してると言っても実際言ってるし やっぱり難癖つけたいだけじゃん
127 名前:デフォルトの名無しさん mailto:sage [2017/06/26(月) 04:36:09.09 ID:z8x4rlt1.net] >>120 お前もうただ言い方に突っかかってるだけだろそれ
128 名前:デフォルトの名無しさん mailto:sage [2017/06/26(月) 07:49:16.94 ID:b8W7cjsr.net] >>118 引数の逆順でファイル読み込んで一つのイテレータにするだけなら、pythonならこれだけじゃね? (x for f in argv[1:][::-1] for x in open(f)) これをイテレータを処理する関数の引数に渡せば、お前のやりたい事できてるよね?
129 名前:デフォルトの名無しさん [2017/06/26(月) 08:09:40.24 ID:O05czwZw.net] そうも書けるんだ。 でももうcatコマンドだったら main = getArgs >>= mfput fs id って書けば良いようにライブラリ作っちゃったし、もう良い。 mf = マルチファイル
130 名前:デフォルトの名無しさん mailto:sage [2017/06/26(月) 08:11:46.44 ID:dzp1rCHS.net] >>123 入出力関数が適切にバッファリングしてると思うけど?
131 名前:デフォルトの名無しさん [2017/06/26(月) 08:12:49.97 ID:O05czwZw.net] 逆順だとunlines.reverse.linesしないと改行が変になるから main = mfput fs (unlines.reverse.lines) unlines.f.limesパターンも良く使うから main = mfput fs (fline reverse) って書けるようにしたし。
132 名前:デフォルトの名無しさん [2017/06/26(月) 08:15:23.64 ID:O05czwZw.net] あ、 main = getArgs >>= mfput fs (fline reverse) だった。
133 名前:デフォルトの名無しさん [2017/06/26(月) 08:19:14.81 ID:O05czwZw.net] >>128 うい、行単位でね。 Haskellは基本ファイルの中身を丸ごと文字列で受け取って、文字列で返すから、行って考えはナンバリングしたいとか、行単位で処理したいって思った時に初めてunlines.f.linesパターンで行単位に分解する。 なので出力するHaskellランタイム側にも行単位って概念が無い。
134 名前:デフォルトの名無しさん mailto:sage [2017/06/26(月) 08:29:13.90 ID:dzp1rCHS.net] >>131 行単位じゃないぞ 単純に間違ってるから事実だけ書くけど
135 名前:デフォルトの名無しさん [2017/06/26(月) 08:29:22.47 ID:O05czwZw.net] まあ、そんな事してるからHaskellは遅いんだろうなってのはある。 文字単位でバッファ目一杯入出力するけど、加工過程で分解して戻してってしてるんだし。
136 名前:デフォルトの名無しさん [2017/06/26(月) 08:30:25.78 ID:O05czwZw.net] >>132 なるけど、見かけのコードは行単位でも、バッファリングはそれとは別に行を越えて処理すると。 これは失礼。
137 名前:デフォルトの名無しさん [2017/06/26(月) 08:37:10.13 ID:O05czwZw.net] >>130 さらに馬鹿だ。。。 寝惚けてる。 部分適用し易いようにfsが第二引数だから main = getArgs >>= mfput (fline reverse) これだけで良いんだった。
138 名前:デフォルトの名無しさん mailto:sage [2017/06/26(月) 08:44:37.68 ID:e8nxxM8b.net] KotlinはJava標準ライブラリに対する拡張も上手い Javaに背を向けたScalaとは違って、Java標準ライブラリの良いところ駄目なところを深く理解して 最小限でツボを押さえた拡張を入れてる Scalaが一瞬で要らない子になったのも納得
139 名前:デフォルトの名無しさん [2017/06/26(月) 08:51:02.56 ID:O05czwZw.net] >>126 ついでに言えばPythonのは逆順でもメモリに溜め込まないはずで、大きなファイルだとPython使った方がいいってことになる。 でも、今時のスペックで問題になる程溜め込む場面自体が無い。 小説100冊分が1ファイルに入ってやっとちょっと気になるレベルだから。 なら、より短く書ける方がいい。 コンパイル遅いつっても書き捨てレベルなら毎度毎度定型的にPythonで書いてる時間で終わってる。 自分でライブラリ作ってからは完全にLL的な使い方はHaskellで良いやってなった。 素のままだとPythonのが良いけどね。 自分でライブラリ作るかどうかが決め手だった。
140 名前:デフォルトの名無しさん mailto:sage [2017/06/26(月) 10:49:16.29 ID:/blKTM20.net] 複数のファイルを順番に読んでいって、特定の文字列が見つかるまで入力をそのまま出力する 文字列が見つかったら即終了 ってプログラムを、その自慢のライブラリで書いてみてよ
141 名前:デフォルトの名無しさん mailto:sage [2017/06/26(月) 10:53:00.61 ID:IaB2vgDA.net] スレ違いの日記帳の相手してどうすんの
142 名前:デフォルトの名無しさん mailto:sage [2017/06/26(月) 11:35:20.04 ID:e8nxxM8b.net] 行単位なのはダサいといいながら自分のライブラリはべったり行単位に依存してるのが笑いどころだな 結局行単位が便利だと思う人が多いからlineSequenceみたいなユーティリティが標準で用意されてるだけで、 やってることはunlines.f.linesと変わらんぞ
143 名前:デフォルトの名無しさん [2017/06/26(月) 12:07:26.65 ID:lPpre0LA.net] >>138 import System.Environment import Data.List import Myfunc main = getArgs >>= (w:fs) -> mfput (unlines.lines.last.(takeWhile (not.isInfixOf w)).inits) fs
144 名前:デフォルトの名無しさん [2017/06/26(月) 12:56:36.59 ID:+LDRBUDl.net] import System.Environment import Data.List import Myfunc main = getArgs >>= (w:fs) -> mfput ((++ "\n").last.(takeWhile (not.isInfixOf w)).inits) fs unlines.lines要らんかった。 直後って書いてたから最初の検索文字列全部表示される前に終了かと思って上のコードにしたけど、最初の検索文字列表示した時点で終了なら、takeWhileをdropWhileにして、lastをheadにすれば良い。
145 名前:デフォルトの名無しさん mailto:sage [2017/06/26(月) 14:59:05.87 ID:a2h1pIHa.net] >>122 >>136 メインプロジェクトとしていろいろ試して選んだって感じなのね androidの主力開発言語を急に乗り換える必要が発生したから当然だけど (な?うざいだろ?by 某M社)
146 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 22:04:57.53 ID:l3RQzrcR.net] F#ってどうよ
147 名前:デフォルトの名無しさん mailto:sage [2017/06/29(木) 00:10:11.51 ID:qxdPWLiZ.net] OCAMLを.netで記法(not構文)変えて作りましたって感じ>F# 冗長記法だとOCAML互換性高いし
148 名前:デフォルトの名無しさん [2017/06/29(木) 17:11:41.82 ID:wGgfLCtF.net] ***SLAMO*** } 000-"F","TAP","0","1M","L","E-07"/0B"[9BA%]"^"2*73B"="0"/"9GA" 001-"Do"[[[%9DE=HUF%%!%$0B1OTU"NE"]]]<\b> 002-<<%!!!HNDEL%!0DAI@$7[1B]!0#!@>> 3000-{{1\B%HUF!0$$\%6/0Q\%6/GA[[7BU]]%9TE!%$en$}} --- [[[C%%]]] } 000-"5802"/"α"="0.1888412376155482"%en{
149 名前:デフォルトの名無しさん mailto:sage [2017/06/30(金) 08:41:39.49 ID:l6mEUTPw.net] F# は 関数型らしい抽象化機能※ を持っていないのが欠点 抽象化は .NET ( C# ) 互換の抽象クラスやインターフェースで実現することができる でも型推論が効かなかったり null 安全でなかったりして辛い ※OCaml では構造的部分型やモジュール抽象化 Haskell では型クラスや型族のこと
150 名前:デフォルトの名無しさん mailto:sage [2017/06/30(金) 20:40:32.58 ID:2TVIteiy.net] 型だけを見ればC#とF#は同じだろ Haskellだって型だけを見れば他の言語で同じものは作れる 型だけを見るのが王道 逆に型を無視してHaskellにしかないものを強調するのは邪道だから 惑わされるなよ
151 名前:デフォルトの名無しさん mailto:sage [2017/06/30(金) 20:44:45.42 ID:QqdIJRSN.net] 次世代言語でHaskell並にちゃんとした型システムが入ってる言語ってある?
152 名前:デフォルトの名無しさん mailto:sage [2017/06/30(金) 21:24:26.03 ID:2TVIteiy.net] Haskell並ならちゃんとしてるというのは本当か? ちゃんとしてないから「Haskell並」や「Haskellよりマシ」と言い訳するんじゃないか
153 名前:デフォルトの名無しさん mailto:sage [2017/06/30(金) 21:27:48.40 ID:2Da2vksV.net] 構造的部分型が「ちゃんとしてる」かは大いに疑問 あんなもんドカタITで使ったら悪夢だろ
154 名前:デフォルトの名無しさん mailto:sage [2017/06/30(金) 21:57:41.84 ID:onXQUvLg.net] >>151 Haskellの機能じゃないし、その上根拠もない
155 名前:デフォルトの名無しさん mailto:sage [2017/06/30(金) 22:00:33.62 ID:onXQUvLg.net] >>150 静的型に限って言えばHaskellは上位でいいんじゃない? 強いて言うなら、TypeSynonymなクラスインスタンスぐらい言語標準で入れてほしいけど
156 名前:デフォルトの名無しさん mailto:sage [2017/07/01(土) 09:18:35.85 ID:1tCqnKMv.net] 中途半端な奴だな オレが一位だというならまだわかるが Haskellが上位だという主張の何が嬉しいのか
157 名前:デフォルトの名無しさん [2017/07/01(土) 10:27:16.17 ID:yvgbUlYU.net] 古い関数型言語関係の本だと、論理型言語が関数型言語の次の世代とか書いてて、まあ実際最近ワトソンやらペッパーやらAI関係で注目されてるのも論理型言語な訳で。 んじゃPrologはHaskellより使い易いんか?と勉強中。 早くもコレジャナイ感が。。。 もっと今時の論理型言語って無いんかな。
158 名前:デフォルトの名無しさん [2017/07/01(土) 10:52:05.29 ID:yAtrmQtL.net] Adaの型はどう?
159 名前:デフォルトの名無しさん mailto:sage [2017/07/01(土) 20:53:28.76 ID:fjhXkhY/.net] >>154 また話の流れ無視してケチつけてる ちゃんとしてるって意味だよ
160 名前:デフォルトの名無しさん [2017/07/01(土) 22:05:29.59 ID:wWo+lhH6.net] ケチつけたいだけのガガガガイジの相手すんなよな
161 名前:デフォルトの名無しさん mailto:sage [2017/07/01(土) 22:57:47.40 ID:1tCqnKMv.net] 競争に勝つためにケチをつける自由がある 負ける自由もある 好きな方を選べ
162 名前:デフォルトの名無しさん [2017/07/02(日) 00:11:43.12 ID:gxDwTGkS.net] あ、そう言うこと言っちゃう? おいらのライブラリ(>>84-85 )の肝はmfputとmfwriteだが、結局他の言語で同じ様な関数作ってない。 当然だ。 Haskellは手続き型言語のforにあたるmap系の関数もそのまんま関数だし、Haskellだと自然に出力系は最後尾に追いやられるから関数化しやすいんだよ。 普通の言語は処理しながら出力する。 確かに効率が良い。 だが、再利用し難い。 今時のPCなら効率より再利用性のが重要だと思うんだ。 異論は認める。
163 名前:デフォルトの名無しさん mailto:sage [2017/07/02(日) 01:00:22.98 ID:C9YQ5tYh.net] 大きなファイルを処理できないことで再利用性が大幅に低下するとは考えないのかな? 再利用の機会の多いものであれば少々手間をかけても効率を上げる価値があるケースもある
164 名前:デフォルトの名無しさん mailto:sage [2017/07/02(日) 01:20:46.16 ID:u1Wmv21R.net] LispとPrologの構文は汎用性があるからパーサーの再利用が重要だよ 文字列処理のような新しいパーサーを作る機能は重要じゃないよ でも文字列の処理を書いてしまったらもう再利用を語る資格はないと思う
165 名前:デフォルトの名無しさん [2017/07/02(日) 07:23:22.14 ID:WUD7Q/xy.net] >>161 何度も書いた気はするんだが、遅延評価でメモリに溜め込んで出力してる様に見える処理も、 実際に火必要に応じて出力しながら処理してるから、.実際に溜め込んじゃうreverse使う様な処理じゃなければ大きなファイルも扱えるし、その気になればreverseな処理もCのfseek相当の関数もあるから克服出来る。 ただ、そこまで大きなファイルなら、Cで書いた方が速いの分かってるし適材適所。
166 名前:デフォルトの名無しさん [2017/07/02(日) 08:20:48.27 ID:uovtJU8N.net] >>163 それはちゃんと出力先があれば、の話なんだよな。 出力を怠るとメモリがお漏らししちゃうぞ。
167 名前:デフォルトの名無しさん [2017/07/02(日) 09:08:10.92 ID:hGhen2or.net] 出力先がない状況って何ンゴ?
168 名前:デフォルトの名無しさん mailto:sage [2017/07/02(日) 09:28:31.60 ID:lZlu9LSV.net] >>160 mapに出来てforに出来ない事って何?
169 名前:デフォルトの名無しさん mailto:sage [2017/07/02(日) 09:46:22.26 ID:0JAKzAeZ.net] 明らかに>>122 の方が可読性が高い件
170 名前:デフォルトの名無しさん [2017/07/02(日) 09:53:43.24 ID:nuNQpba8.net] forに出来てgotoに出来ないことって何?
171 名前:デフォルトの名無しさん mailto:sage [2017/07/02(日) 09:54:28.82 ID:sP9TjomQ.net] もうjavascriptだけで良いよ
172 名前:デフォルトの名無しさん mailto:sage [2017/07/02(日) 09:55:33.26 ID:lZlu9LSV.net] >>168 ライブラリ化や可読性の意味でだよ
173 名前:デフォルトの名無しさん mailto:sage [2017/07/02(日) 09:58:49.45 ID:lZlu9LSV.net] ちなみにHaskellではforMとmapMは引数の順番が逆なだけ
174 名前:デフォルトの名無しさん mailto:sage [2017/07/02(日) 11:33:32.10 ID:Nl2/i6W2.net] fmapと内包表記とdo記法は外見が違うだけ javaとscalaとkotlinみたいなもん
175 名前:デフォルトの名無しさん [2017/07/02(日) 12:30:20.47 ID:Ey9UZy2f.net] >>166 値を返せない。 関数合成出来ない。
176 名前:デフォルトの名無しさん mailto:sage [2017/07/02(日) 12:36:37.05 ID:0JAKzAeZ.net] >>173 今時はyieldとかあるんやで
177 名前:デフォルトの名無しさん mailto:sage [2017/07/02(日) 12:39:37.96 ID:Nl2/i6W2.net] 値を返せないのは、getterを作るなというOOPの教義のせいでもある
178 名前:デフォルトの名無しさん mailto:sage [2017/07/02(日) 14:28:11.11 ID:lZlu9LSV.net] >>173 老害を自覚しましょうね
179 名前:デフォルトの名無しさん mailto:sage [2017/07/02(日) 15:37:42.58 ID:Nl2/i6W2.net] pythonのyieldはStopIterationが気持ち悪い ではnullを返せばいいかというとそれも気持ち悪い 値を返せない空気に逆らうのは楽じゃない
180 名前:パシュー [2017/07/02(日) 16:23:07.20 ID:JZu2jdmH.net] スレ違いであればすみません、どなたかわかる方いらっしゃればお願いします。 先日、営業電話があり、お宅のところはau光を利用してますよね? →今まで、この手の電話で言った覚えが無い。ただ、au光は確かに利用・・・ 何故、わかるのか問いただしたところ、相手からこちらの固定電話に電話するときや、 メールに送信するときの反応、時間、信号?跳ね返りの反応? でわかりますとの回答。 確かに先日、某サイトから携帯とセットでネット環境の見直しとして、 問い合わせはしましたが、果たして、相手からメールアドレスを 送信した時の反応や送信までの時間、 電話が繋がるまでの少しの時間での反応などで分かるものなのでしょうか? ちなみに携帯の番号は教えてません。携帯であればドコモやauなどとあたりをつけることはわかるのですが… どなたか教えて下さい!
181 名前:デフォルトの名無しさん mailto:sage [2017/07/02(日) 18:05:16.33 ID:XQorprgY.net] 選択肢が少なけりゃあてずっぽでいいだろw
182 名前:デフォルトの名無しさん mailto:sage [2017/07/02(日) 18:06:59.55 ID:O/UEQvVu.net] >>178 スレ違いどころか板違いだが、結論だけ言うとわからない 単に名簿屋から買いましたって言いづらいから、素人騙しでそう言ってるだけ 続きはヤフー知恵袋でやれ
183 名前:デフォルトの名無しさん [2017/07/02(日) 21:50:57.08 ID:19kDKEGS.net] >>174 yieldとか書く時点でダルい。 そんな速度変わらんのに、なんでそんな書かなあかんねん。
184 名前:デフォルトの名無しさん [2017/07/02(日) 22:22:57.06 ID:19kDKEGS.net] >>176 まあ若いと言えない年になりつつあって20代の頃に比べりゃ覚えが悪くなってる自覚はある。 それでもC/C++、VB(.net含む)、Java、C#、Python、Ruby、smalltalk、Delphi含むPascal、もちHaskellは割と使えるぞ。 なんと無く分かっただけなのはLisp、Prolog、Erlang。 関数論理型言語Curryはもうチョイメジャーになったら本格的に覚えたい。 でもな。 学習と挫折繰り返した末に到達したのは覚えた言語の数じゃないって事だ。 知るべきはアルゴリズムや文法じゃ無い。(いあ、後々覚えなきゃだが) 作りたいアプリに対する周辺知識。(ファイル構造だったり、アプリにしたい事象に対する知識)
185 名前:デフォルトの名無しさん [2017/07/02(日) 22:26:25.12 ID:19kDKEGS.net] あ、x86とARMのアセンブラもか。
186 名前:デフォルトの名無しさん [2017/07/02(日) 22:31:49.24 ID:19kDKEGS.net] てか、Haskellのお陰でクイックソートがやマージソートがどう言う動きしてんのか理解出来たんだよ。 そう言う意味じゃCやJavaのアルゴリズム本みたいにコード示して終わりじゃ無くて、超初心者向けのどう言う動きですって動きだけ説明してる本のが有用だわ。 それ読んでコード書けない程度の抽象的な考えが出来ない(おいらみたいな)奴はプログラマの才能無い。
187 名前:デフォルトの名無しさん mailto:sage [2017/07/03(月) 00:03:55.72 ID:Tx9mAztB.net] Haskellのinplace quicksortって可読性低くて冗長じゃん Haskellerはあんなのが読みやすいの? それとも、全く実用にならないquicksortのコードみて簡潔だと思っちゃったタイプ?
188 名前:デフォルトの名無しさん [2017/07/03(月) 00:05:35.20 ID:MHKU0t6b.net] 再帰のクイックソートは理解しやすいからな 実用性はともかく
189 名前:デフォルトの名無しさん [2017/07/03(月) 00:08:46.80 ID:UYk8Gv77.net] >>185 うい。 TDNクイックソートで簡潔だと思ったタイプ。 遅いって分かっててもね。 動作さえ分かれば他の言語で書けるんじゃよ。 そしたら実用的になる。 LL的な使い方なら速度必要無いから、これ以上簡潔なものはない。
190 名前:デフォルトの名無しさん mailto:sage [2017/07/03(月) 00:37:29.08 ID:wW6TPWna.net] C のコードより haskell のクイックソートのが理解しやすいって 本気で言ってんの?
191 名前:デフォルトの名無しさん [2017/07/03(月) 00:46:37.45 ID:MHKU0t6b.net] 妙なハードルつけてそれは本当の理解じゃないとかいうガイジ湧いてきたか?
192 名前:デフォルトの名無しさん mailto:sage [2017/07/03(月) 00:49:28.31 ID:oRb6DKWl.net] Cのクイックソートも悪くないよな たった一個の配列を部分部分で触っていくだけ 範囲きめてピボットきめて交換、の繰り返し メモリの使用に余計なところが無いからスカっとする
193 名前:デフォルトの名無しさん mailto:sage [2017/07/03(月) 08:07:49.86 ID:02h+sYLq.net] >>189 空間計算量とか知らない低脳君はアルゴリズムの話しに入ってこないでね
194 名前:デフォルトの名無しさん [2017/07/03(月) 08:47:12.79 ID:MHKU0t6b.net] >>191 勝手に相手の理解度決めつけるガイジはレスしないでね
195 名前:デフォルトの名無しさん [2017/07/03(月) 08:49:31.61 ID:MHKU0t6b.net] まずこの話計算量関係ないからな 二重の意味でガイジやね
196 名前:デフォルトの名無しさん mailto:sage [2017/07/03(月) 08:57:49.58 ID:1X06ZxCF.net] >>193 いやいや関係あるからw in-placeって文字も読めないのかよ 図らずも君の低脳度もより明らかになってしまったね
197 名前:デフォルトの名無しさん [2017/07/03(月) 08:59:51.73 ID:deAVzAEO.net] >>194 in-placeの話してるのお前だけだから 自分の話したいことと人が話してることの区別もつかないとか凄いな
198 名前:デフォルトの名無しさん mailto:sage [2017/07/03(月) 09:05:27.81 ID:1X06ZxCF.net] >>195 だから低脳はアルゴリズムの話に入ってこなくて良いって ドカタは用意された関数呼び出すだけなんだから
199 名前:デフォルトの名無しさん mailto:sage [2017/07/03(月) 09:07:05.32 ID:1X06ZxCF.net] でもO(n)とO(n log n)の区別もつかない低脳が次世代言語について語ってるって面白いな
200 名前:デフォルトの名無しさん [2017/07/03(月) 09:11:01.34 ID:deAVzAEO.net] >>196 周り見ろよ。今そんな話してるのお前だけだぞ 話に入ってきたのはお前だ あと2回目だけど勝手に人をin-placeのクイックソート理解してない扱いするのやめてね。流石に不快だから
201 名前:デフォルトの名無しさん mailto:sage [2017/07/03(月) 09:31:49.69 ID:1X06ZxCF.net] >>198 ああゴメンゴメン >>189 がin-placeを「妙なハードル」とかとんでもない事言ってるから、つい言葉がキツくなっちゃった ハードルどころか基本中の基本だよねw
202 名前:デフォルトの名無しさん [2017/07/03(月) 09:49:48.18 ID:deAVzAEO.net] >>199 ああそういうことね ハードルはin-placeを指して言ったんではないんよ ID:19kDKEGSはHaskellのコードで何をやってるか理解してから普通のクイックソート理解したみたいで、そこに>>188 が来たから理解というものに妙なハードルというか拘りみたいなものを持っていると言いたかったんよ たしかにハードルっていう表現はあんまり良くなかったな
203 名前:デフォルトの名無しさん mailto:sage [2017/07/03(月) 10:41:46.80 ID:apAa5CHd.net] Cが原文でHaskellが翻訳文という前提なら 誤訳のリスクがあるHaskellの方が読みやすいってことは理論上ありえないね でも理論には前提があるから、前提をぶち壊せば理論上ありえないことが実現する
204 名前:デフォルトの名無しさん [2017/07/03(月) 11:19:50.56 ID:6QSWtKdI.net] >>188 そのクイックソートのコードは知らないから的外れになるかもしれないが 普通は、Cのコードなんて慣れている人以外には判じ物みたいで 何だってHaskellのコードの方が判りやすいだろう
205 名前:デフォルトの名無しさん mailto:sage [2017/07/03(月) 14:43:11.96 ID:X+xTdZLt.net] 次世代言語スレで何でみんなCとHaskellの話してんねん そのうちCOBOLとかForth
206 名前:の話になるのか [] [ここ壊れてます]
207 名前:デフォルトの名無しさん mailto:sage [2017/07/03(月) 15:00:48.27 ID:JOeKNGQV.net] 全部、第3世代言語じゃ
208 名前:デフォルトの名無しさん mailto:sage [2017/07/03(月) 16:15:40.55 ID:NT4tSDag.net] どんどんプッシュしたくなる次世代言語が見えなくて 現実逃避してるような気がするのは気のせい?
209 名前:デフォルトの名無しさん mailto:sage [2017/07/03(月) 17:12:08.86 ID:apAa5CHd.net] 言語を使いこなす正攻法よりもマインドをコントロールする裏技ばかり使うクズが増えた 言語の進化は止まった
210 名前:デフォルトの名無しさん [2017/07/03(月) 17:41:53.22 ID:XPxmwxQZ.net] >>203 CはともかくHaskellは永遠の次世代言語やぞ
211 名前:デフォルトの名無しさん mailto:sage [2017/07/03(月) 18:09:44.24 ID:VYGl+Wps.net] 娘に年齢を越されるんですね。
212 名前:デフォルトの名無しさん mailto:sage [2017/07/03(月) 20:16:26.39 ID:wW6TPWna.net] 普通にググればわかりやすい説明がでてくるというのに。。 本当に haskell のが分かりやすいなら下の wiki のページを書き換えてこいや。 https://ja.wikipedia.org/wiki/%E3%82%AF%E3%82%A4%E3%83%83%E3%82%AF%E3%82%BD%E3%83%BC%E3%83%88