X



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

■ このスレッドは過去ログ倉庫に格納されています
0261デフォルトの名無しさん
垢版 |
2017/07/05(水) 07:27:05.94ID:+U8R7kGU
それの何がいけないんだろうか。。。
速度欲しい時だけCで書けば良いってのはまさにそれだが。
Haskellでも書けないことはないんだろうけど、楽するための言語なんだから、そんな事するならCで書くよ。
おいらにとってはLL的な用途にはLLよりHaskellのが楽だった。
それだけの事。
0263デフォルトの名無しさん
垢版 |
2017/07/05(水) 07:38:51.44ID:bh56GpK2
Haskellの再利用性に関する重大な課題は>>80-81で既に示されてるね
mfput君の意見がまだみたいだけど見解は?
0264デフォルトの名無しさん
垢版 |
2017/07/05(水) 07:51:17.76ID:0jzZYcN5
>>142も結局mfputしか再利用出来てないし
mfput君は今のところ肝心の再利用性の高さについてはほとんど立証できていないように見える
Haskell云々というより本人の設計センスの問題な気もするが
0265デフォルトの名無しさん
垢版 |
2017/07/05(水) 08:10:24.97ID:SG/9DEZV
お前の意見なんて「自分のような初心者にとってはHaskellは分かりやすかった、以上」だけで十分なんだよ
お前のクソ初心者臭いコードやポエムを読まされて
他者が得るものがあるとでも?
0266デフォルトの名無しさん
垢版 |
2017/07/05(水) 08:28:35.89ID:+4iFZrIp
2chのレスに得るもの求めるとかガイジかよ………
Stack overflow 池
0268デフォルトの名無しさん
垢版 |
2017/07/05(水) 10:00:37.58ID:tWLafY8Y
このスレでガイジガイジ連呼してるやつマジ病気かよ
どんだけリアルで悲惨な人生だったらこうなるんだ
0270デフォルトの名無しさん
垢版 |
2017/07/05(水) 12:26:16.42ID:+4iFZrIp
Haskellの言ってることは一応一貫してる
そこに突っ込んでる人は一貫してる部分を読めていないとしか思えないツッコミばっかり
そんな的を外したらツッコミに逐一返信してるんだから永久に終わるわけがない
0271デフォルトの名無しさん
垢版 |
2017/07/05(水) 12:32:33.78ID:GeoIRJSP
>>263
>>81がまさにおいらの回答だが。。。

mfputはLLより短く書けないもんかと考えた時、あらゆるものが関数何だから関数化出来るじゃんって思い付いた。
0272デフォルトの名無しさん
垢版 |
2017/07/05(水) 12:38:33.21ID:GeoIRJSP
>>265
あはは。
その通りだよ。
LLより初心者に優しいってのがまず一つ。
LLに限らないけど、定型文になってる部分もパターン化して関数にし易い(LLでも出来るだろうがスマートじゃない)
0274デフォルトの名無しさん
垢版 |
2017/07/05(水) 12:53:14.41ID:PFivIsqu
>>271
81が回答とかさすがにガチハスケラにぶん殴られるぞ
ハスケラはこういう突っ込みには
「呼び出し側も含めて設計を見直せ。状態を持たせるというのは本質的に重大な変更であるから影響が大きいのは当然である。」と答えるのがテンプレだ
覚えておけば役に立つよ
0275デフォルトの名無しさん
垢版 |
2017/07/05(水) 13:23:50.44ID:x40Yunw0
Javaでもうっかりstatic変数を使うと設計を見直させられるパターンだろ
thisとかselfとかいう引数を追加するのが定石
これはHaskellでも簡単にできる
0276デフォルトの名無しさん
垢版 |
2017/07/05(水) 13:59:00.37ID:PFivIsqu
Javaの場合はインスタンスフィールドでいいだろ
Haskellだと直前の値を保持しているところまで遡って全部修正かな
0277デフォルトの名無しさん
垢版 |
2017/07/05(水) 21:01:53.58ID:z3CI8qH6
>>274
STモナドとかで実現は出来るんだけどさ。
GUIならGUI、DBならDBに状態保持を任せちゃった方がスマートだとは思わないかい?
テンプレじゃ無く、あんたのハートに聞いてる。

ああそうそう、実はgrepは検索文字列が見つかった前後20文字表示にするか行表示にするか迷って、行表示の方が簡単だからたまたまgrepと同じ機能になっただけで、前後20文字の場合は別にファイルの内容丸ごと記憶しておく変数を引き回しても良かった。
どうせ遅延評価で必要になるまで読み込まれないから2ファイル同時でもたかが知れてるしね。
丸ごと記憶する方法も、見つかったら29文字以前をGCしやすいようにするのと1から検索させるのとあるけど、小説10-20冊を1ファイルに収めても問題無いんだから気にする事もない。
0278デフォルトの名無しさん
垢版 |
2017/07/05(水) 21:03:02.86ID:z3CI8qH6
x29
o20
0279デフォルトの名無しさん
垢版 |
2017/07/05(水) 21:21:41.45ID:HfOW3or9
いかにHaskellキチがお勉強できて正しいこと言ってようと
こいつがgrepを始めとしたツールを知らない無知で
オレオレ仕様で再発明してドヤ顔してるトンチキなのには変わりないんだよな
0280デフォルトの名無しさん
垢版 |
2017/07/05(水) 21:23:14.50ID:HfOW3or9
Haskellが使える言語かどうかは知らんけどHaskellerがオタンコナスなことはまた一つ実例が出てきてしまった以上の情報はないね
0281デフォルトの名無しさん
垢版 |
2017/07/05(水) 21:27:53.06ID:vgwSeoh2
このHaskellerってファイル読み込んで同じファイルに上書きするの出来ないとか言ってたはずだけど、
それでどうやってテキストエディタ作るんだろう?
まさか全部DBにデータ入れるのか?
テキストエディタのインストールの前にDBのインストールが必要ってことか?
0283デフォルトの名無しさん
垢版 |
2017/07/05(水) 21:46:58.82ID:z3CI8qH6
>>279-280
おいらがトンチキ呼ばわりはいいんだよ。
あれ、Haskell使えるんか?使ってみようかなって人が増えれば。
んで、そんな無知で馬鹿な奴でも書けるアピールな。
0284デフォルトの名無しさん
垢版 |
2017/07/05(水) 21:50:19.56ID:z3CI8qH6
>>281
それはwriteFile関数の仕様。
readFaile幾つ読み込んでもいいし、下位の関数探ってれば複数ファイル書き込めるのもあるだろう。
安全の為の仕様だし、安全じゃないのを許容するのがあるはず。
最悪、Cで書いてFFIでHaskellから呼べば良い。
0285デフォルトの名無しさん
垢版 |
2017/07/05(水) 22:04:05.82ID:fqeoBJ4G
>>277
全く思わないな
なんで勝手にGUIやDBを前提にしてるんだ?
これまで状態を持たなかった関数を前後の値を考慮するように変更したいというのは
君の大好きな「LL的なタスク」であってもそれほど珍しい状況ではないように思うぞ?
0286デフォルトの名無しさん
垢版 |
2017/07/05(水) 22:42:05.37ID:+4iFZrIp
>>281
よく知らんけどleksahって言うHaskell製IDEが実在しているのでこのHaskellの人が言ってることが間違ってるのは間違いない
0288デフォルトの名無しさん
垢版 |
2017/07/05(水) 23:03:23.20ID:bh56GpK2
だいたいDBやGUIに持たせるといってもどこからそのコンテキストを持ってくるんだ?
結局呼び出し階層を遡って大修正だろう
暗黙的に環境の状態にアクセスするような関数があればいいとか思ってるなら、冗談抜きで怖いハスケラに夜道で襲われるレベルの邪悪な思想だぞそれ
0289デフォルトの名無しさん
垢版 |
2017/07/06(木) 00:04:57.61ID:CrSqEEHs
大きすぎて修正できないならさっさと諦めて逃げれば邪悪にはならないが
逃げるくらいなら邪悪な方がマシだと思うから邪悪になる
0290デフォルトの名無しさん
垢版 |
2017/07/06(木) 01:50:43.47ID:9Gxa3EmF
>>283
まーHaskell自体は決して使えん言語ではないのは知ってる

書くもんが大型化してくるとデフォ遅延評価のせいで副作用周りのデバッグが発狂難易度になるとか
ちょっと気を抜くと遅延サンクが膨れ上がって死ぬとか
色々あるからあんまりモノリシックにでかいものを複数人で書くのには向いてない言語だとも思うがね

そういう意味でHaskellはハードウェア記述言語に向いてると思うんだが、まだこれといったやつが出てきてないんだよな
0291デフォルトの名無しさん
垢版 |
2017/07/06(木) 02:15:34.43ID:pIo4ewrq
そもそも関数型が解決しようとした問題は、副作用の連鎖による想定外のトラブルだろ
大規模な構造をどう記述するかということであって、もうそれはOOPが解決してしまった
0292デフォルトの名無しさん
垢版 |
2017/07/06(木) 08:32:49.91ID:KLsItAo2
つまり純粋関数型は使えないと?
0293デフォルトの名無しさん
垢版 |
2017/07/06(木) 08:51:12.34ID:EB5tIDF+
その純粋ってのを保証してるのはコンパイル時の型チェックだな
それがなければ使える
0295デフォルトの名無しさん
垢版 |
2017/07/06(木) 09:24:44.24ID:4UTaW8nX
オブジェクト指向プログラムで副作用は解決してないだろ。どうみても。
0296デフォルトの名無しさん
垢版 |
2017/07/06(木) 09:46:24.49ID:EB5tIDF+
288の言う「呼び出し階層を遡って大修正」は
副作用有り・無しのチェックだけじゃない
ヌルを許容する・しないのチェックで破綻するケースもある
0297デフォルトの名無しさん
垢版 |
2017/07/06(木) 10:02:36.10ID:tNWdrmh7
>>296
あるある
汎用性を考え出すとモナドとMaybeにまみれて何のための静的関数型かよく分からなくなってくるんだよな
0298デフォルトの名無しさん
垢版 |
2017/07/06(木) 17:43:28.35ID:FO8iZdOb
>>290
うちのプロジェクトは遅延評価禁止ね全部先行評価で書け
oO(ソースが全然Haskellに見えないw)
0299デフォルトの名無しさん
垢版 |
2017/07/06(木) 19:15:58.18ID:NwSzXY2t
プログラムが現実と関係を持ちつつ社会の中で動いている以上副作用を無くすことはできない。
全体を停めることができず、部分単位でアップデートを繰り返すならなおさら。
そう言った意味で『関数型言語』は結局いつまでも実現することのない賽の河原の石積み。
0300デフォルトの名無しさん
垢版 |
2017/07/06(木) 20:11:21.34ID:lW8KZ3Ns
まあ言語の機能によって副作用のないコードエリアを明示するってアイディアは
良いと思うんだけどね。
haskell は変な極論を推し進めてどうしようもなくなってるという印象が強い。
0301デフォルトの名無しさん
垢版 |
2017/07/06(木) 20:13:21.99ID:dOY2yuiz
>>297
>>299
副作用が多くてMaybeモナドだらけになるって設計が悪いだけじゃない?
それって普通のプログラミング言語で書いても副作用だらけのプログラム書くってことでしょ?
どんなプログラミング言語でも副作用はなるべく少ない箇所に押し込むでしょ
0302デフォルトの名無しさん
垢版 |
2017/07/06(木) 20:29:36.80ID:XEsudacO
Haskellは副作用禁止の言語だと思ってる奴多いんか?
副作用と純粋関数に分けて書くってだけだぞ
0303デフォルトの名無しさん
垢版 |
2017/07/06(木) 20:35:22.98ID:td/2KdW6
>>301
Haskellは極論バカだから特にそこが問題になるんでしょ
オブジェクト指向では少々副作用があろうが汚かろうがクラスに閉じ込めて外からは「問題にならない」ようにすることができる
mfput(笑)みたいな小さな問題と違って、現実世界の問題を相手にすると常に最初から完璧な設計をするなんて不可能だしね
0304デフォルトの名無しさん
垢版 |
2017/07/06(木) 20:39:55.53ID:td/2KdW6
>>302
そんな勘違いをしてる奴は誰もいないと思うぞ
副作用の混入に対してセンシティブすぎるという話
0306デフォルトの名無しさん
垢版 |
2017/07/06(木) 23:11:16.25ID:4UTaW8nX
Javascriptのこのクイックソートは副作用なし


// QuickSort
QS=X=>X.length<=1?X:[
...QS(X.filter((x,i)=>i>0&&x<X[0])),X[0],
...QS(X.filter((x,i)=>i>0&&x>=X[0]))];

//main
var x=1, X=[...Array(20)].map(()=>x=(7+37*x)%100);
console.log("in: "+X + "\nout: "+QS(X));

http://ideone.com/wnQXXE
0307デフォルトの名無しさん
垢版 |
2017/07/07(金) 06:18:59.39ID:1OiH67XQ
>>290
ハードウェア記述言語向きってのは使った事ないけど、分かる気がする。

おいらもHaskellでGUIから何から書き下すのは出来なくはないけどそれOOPで良いよねって思ってて、
でもある意味CUIよりGUIの方がメッセージやイベントに答えるコード書けば良いだけなんだから、
むしろGUIをHTMLやXAMLで記述するようになった今だからこそHaskellは環境さえ整えばGUIも向いてると思うんだよね。
その環境が絶望的に揃ってないだけで。

なんつーかな。
あんたと思ってんのは基本同じだな。
全部Haskellで書こうとするから無理が出る。
上手に副作用部分を外部ツールなり、他の言語に任せて連携させればこれ程シンプルかつ堅牢に作れる言語もなかろうって思う。
0308デフォルトの名無しさん
垢版 |
2017/07/07(金) 09:21:04.24ID:Od+E3Jwj
つまりhaskellではなくOOPと関数とマルチパラダイムが答えということか
あ、Scalaやね
0309デフォルトの名無しさん
垢版 |
2017/07/07(金) 09:44:10.95ID:SZnapx63
今だとGoogleのお墨付きを貰ったKotlinだろう
mfput君のレベルだと全く不足ないことは上で実証済みだし
0311デフォルトの名無しさん
垢版 |
2017/07/07(金) 10:37:23.83ID:NO/da/cw
>>308
HTMLやXAMLでGUI部分書くようになった今、OOPの役割は終わったのに醜く延命してるって話。
でもコード資産があるから、ベストじゃ無いって分かっててもそうなるんだろうな。
0312デフォルトの名無しさん
垢版 |
2017/07/07(金) 12:01:01.33ID:GpMOtbcc
>>311
GUIの中で副作用のないところをhtmlに切り出せたなら
あとは副作用をどう上手く書くかだろ?
だったらHaskellみたいな純粋関数型は益々いらんって事にならんか?
0313デフォルトの名無しさん
垢版 |
2017/07/07(金) 12:31:39.94ID:qM4KnfoJ
GUIで書きたいのはただの副作用ではなく非同期な副作用
非同期とXMLを流行らせたJSの手柄をOOPの手柄にするのはアクロバティック過ぎる
0314デフォルトの名無しさん
垢版 |
2017/07/07(金) 12:34:56.69ID:xvg52mfm
え、逆だろ?
HTMLやXAMLは副作用の排出口。
だからそれらに書き込むような表層部分に副作用部分を集める。

むしろ今だからこそHaskellがGUIで活きる可能性が出て来た。
例えばエディタ作るとして、CUIだと文字入力監視用のループがある。
GUIだと文字入力されたってイベントに対応すれば良いから、HaskellだとGUIのがエディタ書きやすいと予想してる。
んで、そっからは文字列処理得意なHaskellの独壇場。
普通のアプリなら文字列処理をロジックと読み替えて良い。

まあ実はHaskellだけでGUI書いてもJavaやC#みたいにIDEが整備されてる言語には劣るけど、整備されてない言語とならどっこいどっこいで、特にGUI苦手ってわけでも無いんだけども。
Haskellっぽくなくていやんな見た目なだけで。
0316デフォルトの名無しさん
垢版 |
2017/07/07(金) 13:14:54.40ID:SZnapx63
>>314
そこまで構想(妄想?)ができたならもうそろそろいいだろ
続きはgithubで語れ
mfput(笑)みたいなサンプルじゃなく、ちゃんと実用性のあるGUI&DBアプリを作ってくれよ
期待してるぞ
0317デフォルトの名無しさん
垢版 |
2017/07/07(金) 13:39:25.73ID:kkdCXGBc
>>314
GUIアプリを画面を入力すると画面を出力するプロセスの集合体と見做すのはCOBOL時代には主流だった発想だよ(今でもWebには色濃く残っている)
自分でやってみりゃわかるけど、確かにスケールはさせやすいんだがくだらん単純作業とコピペを延々繰り返すような開発になるし
大きな手戻りが生じるともう悲惨
0318デフォルトの名無しさん
垢版 |
2017/07/07(金) 14:05:26.16ID:C9MPrnMO
うい。
作れたら出してみる。
0320
垢版 |
2017/07/07(金) 22:07:41.70ID:TSmGX11I
ダム端の画面エンジン面倒見たことあるわ。

文字入力監視のループと、GUIのイベントのdispatchループがどう違うかわからんな。
WinMainとGetMessageとか、XlibのXNextEventからGUIアプリ作ったこと無くて知らないだけじゃねえの?

副作用の出口ではないような。
WM_PAINTの処理中に描画以外やるべきで無いのと同じように、画面周りは出力に徹しないと話がまとまらん。

入力の処理なんか、フォーカス持ってるやつにメッセージ投げるだけだろ。
0321デフォルトの名無しさん
垢版 |
2017/07/09(日) 05:20:26.84ID:iVqKXTPM
昨今の話題にのせられてKotlinの入門編読んでみたけど、なんかイマイチだった・・・
関数の引数は型推論してくれんの?カリー化して部分適用とか力ずくでやらんといかんの?パイプライン演算子は・・・
今のところ不安しか感じてない、次世代言語の劣化版でバカチョン言語ってのがKotlinの実像かな?
0322デフォルトの名無しさん
垢版 |
2017/07/09(日) 07:39:05.73ID:nT4jFya6
>>321
関数引数の型推論もカリー化もパイプライン演算子も
全部持ってるHaskellがゴミクソだったから、
それらは言語の生産性にとって特に重要じゃないって事だよ
0323デフォルトの名無しさん
垢版 |
2017/07/09(日) 09:40:04.24ID:15PsL+fn
括弧を省略しないカリー化はゴミクソだし
中置演算子を使わないのと括弧を省略しないのはLispとJavaの伝統じゃないか
0324デフォルトの名無しさん
垢版 |
2017/07/09(日) 09:45:29.15ID:zwxu6ZoN
なんだかんだカリー化は微妙だと思うなあ
部分適用の文法はClojureとかMathematicaがいい感じ
パイプライン演算子はLL的に使うときは便利やね
0325デフォルトの名無しさん
垢版 |
2017/07/10(月) 01:34:13.11ID:VQ9sifwz
>>322
HaskellがクソなのはDynamicBindingが言語的に駄目扱いされてる点だぞ
あとstatic初期化にunsafePerformIOが必要な点もクソ
デフォルトで静的型なカリー化とかあったほうが明らかに使いやすいだろ知ったか野郎
0328デフォルトの名無しさん
垢版 |
2017/07/10(月) 17:50:59.58ID:LYSrTSKk
Rustが実用言語になったぞ
DockerをオラクルがRustで実装した
0330デフォルトの名無しさん
垢版 |
2017/07/10(月) 20:04:51.52ID:LYSrTSKk
実用言語になったらもう次世代言語じゃないからこのスレとはお別れだな
じゃあな
0332デフォルトの名無しさん
垢版 |
2017/07/10(月) 21:59:47.07ID:2kp3NGJ8
建物は完成した時点から崩壊が始まるのでわざと未完成の部分を残しておくとかいう話を思い出した。
0333デフォルトの名無しさん
垢版 |
2017/07/11(火) 11:36:48.66ID:5tKo2E+W
そもそもオラクルって時点でお察しだが、
業界ゴロのモジカスとOSSゴロのオラクルは相性が良かったんだろうな
0334デフォルトの名無しさん
垢版 |
2017/07/11(火) 15:49:53.62ID:Fwj1YTm5
>>332
誰がどう見ても未完成なら意見が対立しないからね
完成したら、一部の(自称)察しのいい奴が、まだ完成してないと主張し対立が始まる
0336デフォルトの名無しさん
垢版 |
2017/07/11(火) 18:53:45.21ID:dSS1j36W
[][Tebla][]

}

000-"Yob*RtStrike"[%Kil\]MO,fla>%$9999VLTS

001-GYORLith"0\R"/"ESUBA"%$%

HADO-"EM","L","O","NU"###END
0339デフォルトの名無しさん
垢版 |
2017/07/13(木) 00:48:32.99ID:ZEMYQbKR
一生実用言語にならないような言語は次世代とは呼ばねえだろ池沼かガイジ豆腐で撲殺するぞ
0341デフォルトの名無しさん
垢版 |
2017/07/13(木) 01:37:14.59ID:GmrDZ9ks
オブジェクト指向というだけで最低限の実用性はあるから純粋な世界に引きこもる
関数型は引きこもるとやばいから外に出る
0343デフォルトの名無しさん
垢版 |
2017/07/13(木) 07:22:43.74ID:ZgBNlC8f
Smalltalkの引きこもり方は物理的っていうかなんというか
imageの世界に引きこもってるせいで外の世界で新しいツールとか流行ってても使えないし
0344デフォルトの名無しさん
垢版 |
2017/07/13(木) 07:29:54.34ID:uexVWLm1
>>340
20世紀生まれとかバカにしてるけどな
Traitsなんて言語機能は10年とちょっと前
21世紀になってからSmalltalkで考案されたのを
新しい言語がこぞってありがたがって使ってんだぞ

Scalaに至ってはただのMixinをかっこいいからってTraitって名前つけちゃったくらいなんだぞ
0345デフォルトの名無しさん
垢版 |
2017/07/13(木) 07:40:18.24ID:m3hQX1bI
>>343
いつの時代のSmalltalkの知識で止まっているんだよ
Pharo作ってる and/or 使っている人たちの話でも聞いて錆び付いたイメージをアップデートしてみたら?
0346デフォルトの名無しさん
垢版 |
2017/07/13(木) 11:47:59.75ID:LjH88DBT
intはオブジェクトにしない方がいい
他にもプロセスidとかファイルディスクリプタとかURI
オブジェクトの本体ではないものが必要
副作用が必要なのと同じ
0347デフォルトの名無しさん
垢版 |
2017/07/13(木) 13:19:58.91ID:equsxY/V
>>344
バカにしてないけど、次世代言語スレとしては21世紀生まれの子たちに絞ってええやろ
起源がなんであれそれを子どもたちが引き継いでるわけなんやし
0351デフォルトの名無しさん
垢版 |
2017/07/13(木) 15:05:49.91ID:0lD2vgRh
haskellというゴミが消えてくれるならなんでもいい
0352デフォルトの名無しさん
垢版 |
2017/07/13(木) 15:14:48.65ID:/C8bZ6+r
そういえばOcamlになったのって案外新しく(1996)てびっくりした
もちろんCamlさらにMLからの流れだけど
0353デフォルトの名無しさん
垢版 |
2017/07/13(木) 19:08:43.36ID:1nRnB/qa
昔2chのこの手のスレで、Smalltalkerがgitについて全くトンチンカンなコメントを連発してたので
Smalltalkは錆びついてなくてもSmalltalkerは錆びついてると思う
0355デフォルトの名無しさん
垢版 |
2017/07/13(木) 19:53:58.91ID:0/kHeJlt
それ文脈ぜんぜん違う話だしねつ造やめれっていうか錆び付いているのはアンチの脳ミソと記憶力
百歩譲ってそういう話だったとしても最近出没してる「おいら」がHaskellの典型的ユーザーちゃうのと同レベルの話だがや
0356デフォルトの名無しさん
垢版 |
2017/07/13(木) 20:21:10.35ID:LjH88DBT
オブジェクトっぽくないものの語尾にerをつけて無理やりオブジェクトにする現象
0357デフォルトの名無しさん
垢版 |
2017/07/13(木) 20:57:33.19ID:10yx+996
>>354
なんかsmalltalkにある独自vcsもどきがsvn程度の機能しかないのか知らんが
発想が完全にsvnだったよな
0358デフォルトの名無しさん
垢版 |
2017/07/13(木) 21:26:25.99ID:uexVWLm1
>>357
そのvcsもどきっていうのは80年代から組み込みの古典的ChaneSetのことか?
Gitと同時期に開発されたMonticelloがsvn程度ってことはさすがにないと思うんだが
■ このスレッドは過去ログ倉庫に格納されています

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