次世代言語議論スレ[Go Rust Scala Haskell]第5世代at TECH
次世代言語議論スレ[Go Rust Scala Haskell]第5世代 - 暇つぶし2ch2:デフォルトの名無しさん
17/06/13 09:00:09.39 O1HnBMDk.net
よく話題にあがる言語
Go, Rust, Scala, Haskell, kotlin, Erlang
対象言語のどこがクソかでなく、どこが次世代かで語りましょう
🙅 Rustはコンパイルが通らないからクソ!
🙆 Goは学習コストが低い!

3:デフォルトの名無しさん
17/06/13 09:31:03.24 WHieLZYY.net
標準的なライブラリは言語の持つ重要な文化の一つだ
Pythonが機械学習で天下を取った理由にはNumpyが大きく寄与している
データ構造としてNumpyを使えば他の大抵のライブラリと連携を取れる。例えば、TheanoやChainerで機械学習して、結果をそのままNumpyで加工してmatplotlibで出力できる。
だからPythonは機械学習分野で流行した。この裏にはNumpyのもつ大きな文化が存在する
言語の持つ文化と流行には密接な関係があるだろう

4:デフォルトの名無しさん
17/06/13 09:38:21.87 skBOcwaB.net
最近4.1出たのにもはや誰も話題にしないF#くんかわいそう

5:デフォルトの名無しさん
17/06/13 09:45:32.13 kbGi5rrA.net
F#くん言語仕様は悪くないけど使い所がわからん

6:デフォルトの名無しさん
17/06/13 10:05:00.47 O1HnBMDk.net
>>4
俺は普通にプロダクションのコードでF#書いてるよ

7:あ
17/06/13 10:29:07.84 MZxut8VL.net
おお、お疲れ様。
そこまでアンチってわけでも無いがな。
手当り次第中途半端に取り込んだc#がそこそこ実用言語になってんのに、何やってんのあいつらって感じだけど。
どーせ入ったし、逆に最近のHaskellの良さをもっと教えて欲しい。

8:デフォルトの名無しさん
17/06/13 10:36:45.13 o0nyK+Xq.net
Pythonの標準的文化って
JavaとC#とaltjsとスマホを完璧に無視したからできたんだよな

9:デフォルトの名無しさん
17/06/13 10:49:04.84 WpoKav5t.net
>>7
型の強力さと遅延評価のクソさを身をもって示したリファレンスって点は評価ポイントだと思う
あとは実用にはならんかったがdarcsというVCSを世に放ったこと

10:デフォルトの名無しさん
17/06/13 10:50:40.06 VOf9DWNO.net
個人的には、OS標準の開発言語が一番使いやすいって結論になった

11:デフォルトの名無しさん
17/06/13 10:52:36.27 WpoKav5t.net
>>3
Juliaが生きるか死ぬかはNumPyとどう住み分けるかにかかってるだろうな

12:デフォルトの名無しさん
17/06/13 11:34:29.62 KA4hHDRK.net
>>10
OS標準の開発言語はOSと文化を共有しているからな
マルチプラットフォームを視野に入れないなら最良の言語だと思うわ

13:デフォルトの名無しさん
17/06/13 11:41:51.61 r6njVaEB.net
OS標準てLinux=C, Windows=C++/C#, Mac/iOS=ObjC/Swift, Android=Java/Kotlin・・・こんな感じ?

14:デフォルトの名無しさん
17/06/13 11:49:00.99 +kV5cJp9.net
Cは基本的にいい言語だけどラムダとクロージャがない所だけはどうにもならん。でもそれ以外は本当にいい言語だと思う

15:デフォルトの名無しさん
17/06/13 12:13:37.35 WpoKav5t.net
サードライブラリ管理が野良orOSのパッケージ管理依存の二択なとこも駄目というかここが致命的では

16:デフォルトの名無しさん
17/06/13 12:26:01.51 9bQyHle2.net
Goが2.0とかでジェネリクス入ったら、決着しそうじゃない?

17:デフォルトの名無しさん
17/06/13 13:00:17.07 WpoKav5t.net
Rustはトレイト境界の特殊化に束理論適用できるようになったら次世代っぽくなるか?
今はただの気難しい言語って感じで次世代感が薄い

18:デフォルトの名無しさん
17/06/13 13:06:59.02 WpoKav5t.net
>>17
自分で言っといてなんだがないな
ボイラープレートコード増えすぎてJavaの二の舞だわ

19:デフォルトの名無しさん
17/06/13 17:58:36.02 /dWEWAyw.net
Goはいらん
ScalaとKotlinはどっちかだけでいいけどKotlinが後発だからKotlinでいい希ガス
TypeScriptは実用的だけど次世代化と言われると微妙
Rustは他の言語にない機能多いから次世代

20:デフォルトの名無しさん
17/06/13 18:04:11.72 +kV5cJp9.net
>>15
それってCのこと? Cは一切隠蔽しない文化だから、パッケージ管理ソフトとかの隠蔽してしまうものは基本的に相性悪いと思う。Cを書く者はライブラリも自分でMake installするし、インストール場所も自分で指定するから全貌の把握を邪魔するものはないって感じ。
裏を返せば全貌を把握できないと何も出来ないという事も言えるけど。
そういう文化の言語としてはCって完成度高いと思うし、現状超えるものはないと思う。まあ、Cで応用寄りのプログラム書くのは嫌なんだけどさ

21:デフォルトの名無しさん
17/06/13 18:22:10.72 1lda3qQJ.net
>>19
KotlinとTypeScriptにはほとんど差はないだろ
どっちもC#フォロワーだから、機能的には既に十分メジャーであるという意味ではどちらも次世代とは言えない

22:デフォルトの名無しさん
17/06/13 18:52:45.36 qZ9zsjQ6.net
Kotlinはあまり興味がなかった他の言語と違う何かがあるなあ、自分にとっては

23:デフォルトの名無しさん
17/06/13 19:06:12.09 huEjF5Un.net
俺の母ちゃんのあだ名コトリンなんだが

24:デフォルトの名無しさん
17/06/13 19:35:55.51 lP4lhg4O.net
>>20
何のためにdebやrpmに「foobar-dev(el)」ってパッケージがあると思ってる
言語自前のライブラリ管理システムがないからディストリビューションのパッケージ管理に乗っからないとやってけないからだろ
そういうものをCプログラミングと認めないなら好きにしろ

25:デフォルトの名無しさん
17/06/13 19:41:20.40 wCVClZJy.net
そういや、まともな検証プロセスの無いままライブラリが提供される
言語独自のパッケージ管理システムは、OS全体の安全性を脅かしてるってDebianの中の人が嘆いてたな

26:デフォルトの名無しさん
17/06/13 19:41:27.69 lP4lhg4O.net
別に全手動を否定するつもりはないが、
debやrpmが積み上げてきたものを蹴飛ばして
全手動こそがCって言われると違和感があるって話な

27:デフォルトの名無しさん
17/06/13 19:51:19.56 lP4lhg4O.net
>>25
npm pip gem辺りはひどそうだ
goはシステムとは完全にパス分けてる
cargoはどうだっけ?

28:デフォルトの名無しさん
17/06/13 19:53:36.19 o0nyK+Xq.net
ソースコードを読む人は時間の感覚が違うだろ
インストールに1日かかっても1日損したと思ってない
自分で書くより早いから得してるし
読むだけでも1日や2日では終わらない

29:デフォルトの名無しさん
17/06/13 20:32:10.33 +kV5cJp9.net
>>24
「ライブラリが野良orOS配布だから良くない」という意見に「それは別に良い」って言ってるだけやん。ちょっと言葉は過ぎたかもしらんけどそんな噛み付かんといてよ

30:デフォルトの名無しさん
17/06/13 22:35:13.45 ZpGuJRaH.net
環境含めて考えれば
簡易な言語 + チェックツール
のが正解な気はする。
rust みたいに言語で縛るってのがそもそも間違いじゃねーの。

31:デフォルトの名無しさん
17/06/13 22:41:55.07 blSfEUfZ.net
>>30
より安全なC言語(チェッカーだったり、標準ライブラリの置換だったり)って今までたくさんあったけど、どれも普及しなかった
Microsoftも作ってたはず
なので、Rustは今度こそは!感がある

32:デフォルトの名無しさん
17/06/13 22:52:41.30 Hy7s+J5v.net
>>29
言葉きつかったなすまん

33:あ
17/06/14 13:01:02.27 0gE91xz7.net
>>24
何のためにって、そりゃ、ソースを検証せず、各配布元見てアーカイブのハッシュも見ず、
正しいとコミュニティが認めたものをコミュニティへの無限の信頼で横着して手に入れるためにじゃん。
現実的だけど。
>>30
チェックツールを実用レベルまで持ってくと、言語への縛りが結局キツ


34:くなるよ。 停止性問題みたいな話になってくる。



35:デフォルトの名無しさん
17/06/14 14:06:06.69 4UjMkIWv.net
Cの文化とPythonの文化は方向性が全然異なる
昨今の統計事情から察するに、応用を考えるにあたってはPythonの文化の方が優れているだろう
つまり、細かいことは言語作者やライブラリ作者に全部任せて、考えたいことに集中できる文化の方が発展が速い

36:デフォルトの名無しさん
17/06/14 14:32:38.36 SGVDPQnB.net
Cの中に全然異なる二択があると言われたのをもう忘れたか
忘れるの速すぎ

37:デフォルトの名無しさん
17/06/14 14:35:24.56 4UjMkIWv.net
>>35
二択って何?このスレで二択で調べても「野良orOSのパッケージ管理」しか出ないんだけど

38:デフォルトの名無しさん
17/06/14 14:38:55.46 SGVDPQnB.net
リテラシーゆとり教育orバイナリまとめサイト

39:デフォルトの名無しさん
17/06/14 14:47:06.53 4UjMkIWv.net
よくわからんしまあいいや
Pythonの例から考えるに、少なくとも応用分野では次世代に流行る言語は強力なライブラリを簡単に導入でき、すぐに目的コードが書けてしまうと言った特性を有しているでしょう

40:デフォルトの名無しさん
17/06/14 14:59:43.37 W7dgH5v3.net
FORTRANの駆逐に長い時間が掛かったのはライブラリ遺産のせいだって聞いたことがある。

41:デフォルトの名無しさん
17/06/14 15:11:13.20 4UjMkIWv.net
その通り。Fortran77はクソだけど、新しい言語を使おうとしても移植作業も新規に書き直す作業も面倒なので、そんならいいやとFortranを使い続けてきた
そこに持ってきてpip install scipyのワンコマンドでblas lapackの多くのサブルーチンの良質なラッパーをインストールし、よくわかってない学生でもfrom scipy.linalg import eig 出来てしまうPythonは本当に偉大であった

42:デフォルトの名無しさん
17/06/14 20:07:23.71 rnctBDZd.net
まあ今ある blas より速いの作るなんて普通のプログラマには不可能だしな。。

43:デフォルトの名無しさん
17/06/14 21:17:37.82 i/E7QqbY.net
Haskell復活してるやん

44:デフォルトの名無しさん
17/06/15 01:45:20.34 wmi6uQsI.net
>>42
Kotlin引退で繰り上がり

45:デフォルトの名無しさん
17/06/15 03:30:08.09 TdjK6zBT.net
つまり実用できる状態になるとスレタイから外されるって事だよな
ここに残ってるのはいつまでも「次世代」言語

46:デフォルトの名無しさん
17/06/16 00:53:52.07 NKsegnSN.net
現時点のKotlinレベルでいいならGo,Rust,Scalaは実使用されつくしてるような

47:デフォルトの名無しさん
17/06/16 02:31:19.78 57lFqmer.net
Go ScalaはともかくRustは絶対にねえよ

48:デフォルトの名無しさん
17/06/16 08:26:01.05 VSZ6CfqO.net
実用できる次世代言語はkotrin typescript だよね
実用できない次世代言語がスレタイ

49:デフォルトの名無しさん
17/06/16 09:11:14.72 XLEAF0GD.net
mozilaの落ちぶれっぷりがやばい

50:デフォルトの名無しさん
17/06/16 10:10:44.42 sGqUlQsg.net
>>48
元からあいつらただのヤクザ
大義名分のメッキの裏がGoogleやAppleの経済活動で暴かれただけ

51:デフォルトの名無しさん
17/06/16 10:22:55.63 Elc9SXXc.net
個別スレある言語の話はそっちでヤレばいいじゃん
ここは個別スレ無いやつ専用にしろよ

52:デフォルトの名無しさん
17/06/16 10:54:04.49 is6DCp5t.net
パッケージ管理システムとかガベコレの一般論専用かな
一般論の個別スレないよね

53:デフォルトの名無しさん
17/06/16 11:04:24.01 yA2bsaGi.net
日産自動車栃木工場
塗装課、車軸課の正社員の方々の要求はコピペ継続の保守
2ちゃんねる愛用の方々にお知らせ
栃木県上三川町3-5-2
日産自動車上三川寮
管理人は合鍵を使い従業員の部屋に無断で侵入

抜き打ちで従業員の私物を全て調べるブラックの中のブラック企業。
期間工が看護師を殺害する事件もあった危険企業。
離職票を発行するのに一月以上もかかるとの情報もあり期間工の生活事情はお構い無し。
このコピペによる日産の悪事の拡散は日産正社員の断固たる要望である。これには日産と無関係の第三者が便乗している可能性が高く自分は不自然に感じている。

0647 FROM名無しさan 2017/06/01 21:21:43
いいからこんなとこで油売ってないで早く100万コピペ達成してこいよwww
ほら早よ行けやホラホラwww
返信 ID:bEv8YiM0(7/7)
↑↑このように必死で日産の悪事を拡散しろと煽っている。俺は脳無しで馬鹿なので日産正社員が日産悪事を公表するように煽ってきた理由が分からない。不本意ながらコピペを続けている。

54:デフォルトの名無しさん
17/06/18 01:50:03.42 LYWH9ARf.net
個別スレない言語オンリーならRacket無双になるがよろしいか

55:デフォルトの名無しさん
17/06/18 13:22:25.92 BG5e9Vcc.net
あとは歴史的変遷からみる次世代言語とか

56:こんな?
17/06/19 16:27:30.01 PFGmiz2v.net
今SunがJavaっての作ってるらしーぜ
どんな言語だろうな?

57:デフォルトの名無しさん
17/06/24 15:20:30.76 +EJLhPmM.net
Googleがヘルスバーグ(C#)級の人をスカウトしてきて
メインプロジェクトとして本気の新言語作ったとしたらどうなるか見てみたい
GoもDartも最初の言語設計がイマイチ感は否定できないんだよね

58:デフォルトの名無しさん
17/06/24 16:06:03.03 iOfeax4r.net
静的型と動的型のハイブリッドはTypeScriptで早くも完成させちゃったから、
次にヘルスバーグが手がけるとしたら完全な型推論ベースの静的型言語をやってほしい

59:デフォルトの名無しさん
17/06/24 16:23:53.98 pQNLYnE6.net
ヘルスバーグすこ
Googleの作る言語はゴミばっかや

60:デフォルトの名無しさん
17/06/24 16:28:25.84 TM1thEne.net
ヘルスバーグだってMSが敵わなかったからライバルから引っこ抜いたんだろ

61:デフォルトの名無しさん
17/06/24 16:51:36.76 aCsrIsWK.net
なんだかんだ言ってもOS自体を書く言語は変わってないからな

62:デフォルトの名無しさん
17/06/24 21:54:51.34 UUr+9hAP.net
>>56
今ならSwift開発したクリス・ラトナーが絶賛求職中やで。

63:デフォルトの名無しさん
17/06/24 23:50:07.30 UHmd/ofd.net
Googleってゴスリンやゲイドも飼ってたことあるよな
一瞬で辞めたけど
会社の体質に問題があるんだろうね

64:デフォルトの名無しさん
17/06/25 08:44:29.52 JxQEbk3c.net
kotlinとswiftどっちが有望?

65:デフォルトの名無しさん
17/06/25 08:59:11.73 JM0saPft.net
どっちも有望だが、どこを比較してほしいんだ

66:デフォルトの名無しさん
17/06/25 09:10:38.04 JxQEbk3c.net
学ぶならどっちがいいのかなと思って

67:デフォルトの名無しさん
17/06/25 10:07:31.69 ZFXP5+sH.net
Androidのアプリ作りたいのか、iOSのアプリ作りたいか
それだけの話なのに何で自分で決められないんだろ

68:デフォルトの名無しさん
17/06/25 10:21:57.72 JM0saPft.net
何のために学びたいんだ

69:デフォルトの名無しさん
17/06/25 10:24:20.80 by7iMnGq.net
kotlinは既にJavaをマスターしててサンプルコードの雰囲気を見ただけでなんとなく書き始められるくらいの人が使うもんだぞ
勉強するもんじゃない

70:デフォルトの名無しさん
17/06/25 12:21:22.67 BOhr0vIe.net
今Haskellでよく使う処理をガンガン関数にしてライブラリ化してるけど、LLでもここまで短く書けないだろと言うか、
ここまでライブラリ化するには遅延評価じゃないとreverse使わないような処理でもメモリに溜め込むか、
遅延評価にする為にイテレータ作りまくりじゃないかと思った。
いあ、最上位の関数とかは短く書けるんだろうけど、ライブラリ内部の似たような処理を
ガンガン関数にして行くのは流石に難しいと思う。

71:デフォルトの名無しさん
17/06/25 12:39:35.65 mZBbGFn8.net
>>69
つづきはブログでおやり
具にもつかない報告を読まされる身にもなってみろ
お前のレスは今後一切いらんからなこのスレには

72:デフォルトの名無しさん
17/06/25 12:53:31.73 ETAvV0eF.net
linux のソース見る限りは c にまともなマクロが用意されればそれで十分。
まあまともなマクロを用意するってのは言うほど簡単じゃないだろうけど。

73:デフォルトの名無しさん
17/06/25 13:33:53.23 BOhr0vIe.net
>>70
じゃあLLでも何でもいいけど、手続き型言語でよく使う処理をガンガンライブラリ化してみてよ。
どっちがより汎用性と簡潔性を両立出来てるか競おうず。

74:デフォルトの名無しさん
17/06/25 13:58:29.36 by7iMnGq.net
Haskelは実装変更のインパクトがでかくてカプセル化的な考え方で作るには向かないんだよな
実用言語としてガチ関数型を流行らせるには厳密性を維持しつつ現実の大規模開発でのモジュール化も考慮した仕組みを作らないと

75:デフォルトの名無しさん
17/06/25 14:13:01.18 /Sm2Vorl.net
>>73
Cでcatコマンド自作しようとした時、複数ファイルから一番長い一行あたりのバイト数(文字コードによって違うので文字数ではダメ)調べるコマンド作った時、
lengthはByteStringモジュールを使いたいけど、mapは標準のを使いたい(ByteStringのmapはByteString -> Char特化)って時に細かくどれは読み込んで、どれは読み込まないってしたけど、
それじゃあかんの?
モジュール読み込みの設定だけ変えれば、main以下は全く同じコードがバイト数と文字数切り替えれるけど。

76:デフォルトの名無しさん
17/06/25 14:24:06.30 WUy1L4jW.net
>>74
すまん全く意味がわからない
73からいきなり抽象度が下がりすぎだろ
ハスケラならもうちょっと抽象的かつ厳密で明示的なレスを頼む

77:デフォルトの名無しさん
17/06/25 15:21:38.85 mZBbGFn8.net
>>72
なにが「じゃあ」なん?
脳みそ腐ってんの?
しょーもないレスでスレ汚すのやめてくれマジで

78:デフォルトの名無しさん
17/06/25 16:41:08.55 p9Z6xhSy.net
>>75
抽象度が高い=フワッとして概念的って思ってたんだが違うんか。。。
import書く時、この関数だけ読み込まない。
この関数だけ読み込むって指示できるから、そこだけ弄ればそこ以下のコードは書き換え無しに
文字数数えるかバイト数数えるか動作を切り替えられる。

79:デフォルトの名無しさん
17/06/25 16:53:53.40 p9Z6xhSy.net
>>76
うんうん。
分かるよ。
式と文が入り混じるから関数化する単位に限界あるもんね。
副作用と純粋部分の区分けが強制されないというか、遅延評価じゃないと強制されたらreverse使ってなくてもメモリに溜め込むコードになっちゃうし。
それを解消する為にイテレータ書きまくるのも面倒だもんね。
Cくらい速かったら、それを飲み込むのも我慢出来るのにね。

80:デフォルトの名無しさん
17/06/25 17:24:16.31 rLWYKb/E.net
この勘違いしたハスケラを黙らせるには、
ハスケラ自慢のライブラリを見せてもらって、
それより簡潔なコードを書くしかないと思う

81:デフォルトの名無しさん
17/06/25 17:39:45.42 wtr2uEYx.net
>>77
例えば、引数の値のみにより完全に決定される値を返す関数があったとして
ここに「ただし、前回と値が同じ場合は前回より1だけ大きい値を返す」という要件が増えたらどうする?

82:デフォルトの名無しさん
17/06/25 17:56:09.21 pYBZiqDJ.net
>>80
Haskellも状態扱えない訳じゃないし、大量に状態保持す代名詞のGUIプログラミングが、HTMLやXAMLで書かれるのに一定の地位を確立した今となっては、そういうDSL、又はDBに状態保持させて、Haskellは同じ値が来たら外部に+1してってお願いすれば良いと思うけどね。

83:デフォルトの名無しさん
17/06/25 17:59:09.81 wtr2uEYx.net
>>81
つまりインパクトが大きいってことだね

84:デフォルトの名無しさん
17/06/25 18:12:35.96 pYBZiqDJ.net
何言ってんのか分からんけど、Haskellでここまでよく使うパターンをライブラリ化出来るなら、もうLL要らんってなった。
速度が必要な時はCで書いて、速度求めないのはHaskellで良いや。
速度こそLLと変わらんけど、ここまで再利用し易いなら自分でよく使うパターンをライブラリにして行けば、すぐにLLより短くなる。
number.hsナンバリング
import System.Environment
import Myfunc
main = getArgs >>= mfput (fnumbering id)
revnumber.hsナンバリングと行の逆順
import System.Environment
import Myfunc
main = getArgs >>= mfput (fnumbering reverse)
mygrepn.hs検索文字列含まれる行(行番号付き)抽出。
import System.Environment
import Myfunc
main = getArgs >>= \(w:fs) ->
mfput ((replace w (redstr w)).(grep w).fnumbering id) fs
rp.hs(文字列置換)
import System.Environment
import Myfunc
main = getArgs >>= \(w:nw:fs) -> mfwrite (replace w nw) fs

85:デフォルトの名無しさん
17/06/25 18:17:06.53 pYBZiqDJ.net
ライブラリ内部にも似た様なパターンを関数化して無駄に似た様な少し違うコードが少ない様にしてる。
Myfunc.hs自作ライブラリ
module Myfunc where
import Data.List
import Text.Printf
consnum::(Int,String) -> String
consnum (i,xs) = printf "%4d:%s" i xs
fline f = unlines.f.lines
fnumbering f = fline ((map consnum).(zip [1..]).f)
redstr::String -> String
redstr [] = []
redstr w = printf "\ESC[1m\ESC[31m%s\ESC[39m\ESC[0m" w
bluestr::String -> String
bluestr [] = []
bluestr w = printf "\ESC[34m%s\ESC[39m" w
grep w = fline (filter (isInfixOf w))

86:デフォルトの名無しさん
17/06/25 18:17:18.21 pYBZiqDJ.net
replace _ _ [] = []
replace [] _ cs = cs
replace w nw cs | w == xs = nw ++ replace w nw ys
where
(xs,ys) = splitAt (length w) cs
replace w nw (c:cs) = c:replace w nw cs
putfc (f,c) = printf "%s\n%s" f c
writefc (f,c) = writeFile f c
mfptn fs f ofs output = mapM readFile fs >>=
return.(zip ofs).map f >>=
mapM_ output
mfput f fs = mfptn fs f (map bluestr fs) putfc
mfwrite f fs = let tfs = map (++ ".temp") fs in
mfptn fs f tfs writefc >>
mfptn tfs id fs writefc

87:デフォルトの名無しさん
17/06/25 19:00:45.29 rLWYKb/E.net
それライブラリ化する価値もなさそうな
汎用性の無いコードにしか見えんが、本気か...?

88:デフォルトの名無しさん
17/06/25 19:04:10.51 pYBZiqDJ.net
>>79
ワザとウザい役したけど、実際問題再利用のし易さと速度はある程度トレードオフな関係だと思う。
それならHaskellとCで良いんじゃないかってなった。
個々人でバランス感覚違うから、他の言語を選択するものアリだけど。

89:デフォルトの名無しさん
17/06/25 19:11:04.69 pYBZiqDJ.net
>>86
まだ育ててる最中だしね。
複数ファイル読み出し、複数ファイルそれぞれ出力なパターンはこれで行ける。
複数ファイルから一つの結果求めるパターンはこれから作るし、他の関数と共通パターンあったら、関数化して行く。
正気か?って言うけど、forとかメソッドチェーンな中身とか途中のメソッド入れ替えるとか、そう言うことしてる様な感じ。
こんな関数化の方法、オブジェクト指向言語では考えもしなかったぞ。

90:デフォルトの名無しさん
17/06/25 20:27:51.46 k3/0SUsA.net
Haskell使いのレベルの低さが知れるな
こうゆうのを繰り返すならやっぱり次はまたHaskellはずそう

91:デフォルトの名無しさん
17/06/25 20:33:29.70 h1su++jx.net
ていうかHaskell自体は全然次世代言語じゃないじゃん
Haskellの一部分を参考にした次世代言語はあるけど

92:デフォルトの名無しさん
17/06/25 20:59:18.08 +XToNy/r.net
Idrisとか?

93:デフォルトの名無しさん
17/06/25 21:00:59.61 pYBZiqDJ.net
ええ。。。
最近こそラムダ式とか入ったけど、オブジェクト指向って相変わらず手続き型言語で、コンストラクタって結局構造化プログラミングで言うinit関数でしょ?みたいな感じで処理の分け方が上中下って感じなんだもん。
おまけに肝心の中身はインターフェースでそれぞれのクラスに別々に書いてねとか。
似た様なコード何度も何度も書いてるなー。。。って感じだった。
LLにしても、書き捨て毎に似た様なコード書いてるなー。。。って。
Haskellだからここまで関数化しても遅延評価でメモリを一定以上消費しないんだと思うし、mfput関数一つ書けば中身の処理を考えるのに集中出来た。
(mygrepnとか見つかった文字列を強調赤字にするオマケ付き。
rpとかコマンド名が競合するから短い名前だけど、地味にコード書き換えに活躍してる)
実際に上のコードと同じライブラリ書いてみてよ。
パターンは共通って分かってても、文が邪魔したり、メモリに溜め込む処理になるから断念する場面が出てくると思う。

94:デフォルトの名無しさん
17/06/25 21:18:47.33 8QFIS7Xe.net
>>89 >>76 >>70
まともに叩くことも出来ないレベルのクソ野郎は入ってくんなよ…
お前らみたいなのがいるから、変なのが増長するんだろ

95:デフォルトの名無しさん
17/06/25 21:38:11.91 8QFIS7Xe.net
>>92
結局パイプ的に繋いでく話してるだけだな
はっきり言うが、Haskellでまともなプログラム組んでIO扱う途端にその手の使い方はできなくなるよ
その言ってる方法突き詰めたとして、リアクティブプログラミング的になるが、
遅延評価が仇になってサンク作りまくる場合はあるし、遅延評価だから空間計算効率が良いなんて話にもならない
Haskell自身もメモリの効率がいいわけでもない
女アクのGHCのランタイムがまずクッソでかいし
何よりリアクティブプログラミングじゃ、現代のGUIでまともなプログラム作れない
IOなGUIツールキットをリアクティブに対応させるコード書いてる暇あったらIOで書いた方がマシだ

96:デフォルトの名無しさん
17/06/25 21:42:36.54 8QFIS7Xe.net
正確にはリアクティブプログラミングじゃなくてFunctional Reactive Programingだな
リアクティブだけなら、一つのシグナルストリームでなく分散メッセージでいいし難しくはない

97:デフォルトの名無しさん
17/06/25 22:00:46.32 pYBZiqDJ.net
>>94
空間計算効率が良いなんて一言も言ってないが。。。
悪魔で再利用し易さの割にってだけ。
んでもLLと同程度ならほとんどの場合で問題にならないので、このままライブラリ化進めればLLよりチマチマしたの作るのに都合が良い言語になると言うか、既になってる。
半端にLLで空間計算効率考えるよりは、普段はHaskellで富豪的だけどLLより再利用し易いコード書いて、そう言うの重要な場面ではCで書けば良いやってなった。
今時のメモリ搭載量だと小説10冊分が1ファイルに入ってても問題にならんから、実用上ほとんど問題にならん。
それが問題になる時は処理速度的にもLLでも対処出来ない。

98:デフォルトの名無しさん
17/06/25 22:10:00.00 8QFIS7Xe.net
>>96
お前さっきからメモリの話ばっかりしてるじゃん…
それに再利用については、途中からIO入れたら使えないよね?
っていうツッコミに全く反論できてないし
言ってる事めちゃくちゃだぞ

99:デフォルトの名無しさん
17/06/25 22:16:17.15 GaCuKOAB.net
>>97
「関数型で書いてもメモリを一定量以上使わない」を「空間計算効率が良い」と解釈するのはいくら何でも頭発達しすぎでしょ……

100:デフォルトの名無しさん
17/06/25 22:20:20.12 8QFIS7Xe.net
ちなみにCで書こうがIOの問題は付随するので変わらない
そもそもパーサをTemplateHaskellとけ使って書いてるレベルならまだしも Haskellで型注釈も無しじゃコンパイル遅すぎだし、
リストを配列代わりにしたり、String使ってテキスト処理してるレベルじゃLLより遥かに動作遅いだろ
普段から使ってるとはとても思えない

101:デフォルトの名無しさん
17/06/25 22:21:53.78 8QFIS7Xe.net
>>98
いつ帯どこに突っ込んでんだよ
メモリに溜め込む云々は明確にそういう話だろ

102:デフォルトの名無しさん
17/06/25 22:22:12.23 8QFIS7Xe.net
変換ミス
一体どこに突っ込んでんだよ

103:デフォルトの名無しさん
17/06/25 22:24:18.08 8QFIS7Xe.net
え、まさか本当にストリーム処理書けないとかそんな話?
いくらなんでも違うよね?

104:デフォルトの名無しさん
17/06/25 22:27:27.12 pYBZiqDJ.net
>>97
途中からとはなんぞな?
CUIにしてもGUIにしても、HaskellだとIO部分と純粋部分は強制的に分けて書かざるを得ないから何を言ってるのか。。。
(mfwriteでは同名ファイルに書き込めないので一旦別名で保存して、別名で開く->元の名前で保存ってしてるけど、そう言うのはIOが途中で挟まるってのと違うのん?)
ある意味手続き型言語みたく(と言うか他の関数型もそう言う意味じゃ途中でIO挟まる?)、途中でIO挟まらないパイプみたいな処理にCUIでもGUIでも強制されるのがHaskellの一見不便で長所。
mfptnからmfputとmfwrite作ってる通り、関数に渡す出力先を差し替えるだけで良い。

105:デフォルトの名無しさん
17/06/25 22:32:23.46 pYBZiqDJ.net
>>100
それはLLとは言え、手続き型言語がハードの仕組みに依存してるから、Haskellと同じ程度にライブラリ化進めると、普通に書くより遥かにメモリに負担かかるって意味。
Haskellがメモリ効率が良いって言ってるわけじゃ無い。

106:デフォルトの名無しさん
17/06/25 22:33:19.85 8QFIS7Xe.net
>>103
既存の物を状態を扱うように変更するのにコスト大きい、と突っ込まれとるよね
あとGUIは純粋に分けることを強制される、なんて簡単に終わる話じゃないんだよね
新規に同規模の実装を強制されるわけで

107:デフォルトの名無しさん
17/06/25 22:33:55.06 8QFIS7Xe.net
>>104
だから結局空間計算量の話ししてるじゃん…

108:デフォルトの名無しさん
17/06/25 22:38:50.94 8QFIS7Xe.net
ちうか、出力先を変更する云々なんて別にHaskell関係なくないか?
どこがHaskellでしか出来ない処理と言ってるわけ?

109:デフォルトの名無しさん
17/06/25 22:44:55.19 GaCuKOAB.net
ヤバい、ほんまもんや(笑)

110:デフォルトの名無しさん
17/06/25 22:56:39.77 pYBZiqDJ.net
>>99
うい。
ぶっちゃけ大きめのファイルだとLLより遅いの体感出来るw
んでも実用的な時間だし、上でパイプの例えあったけど言い得て妙で、
LLでforとかeachとかでループとして処理するのもメソッドチェーンみたいにファイル名のリスト受け取って、
中身のリスト受け取って。。。ってパイプ処理して行くから、


111:LLより考え方が流れを辿る感じでシンプルなんだよね。 速さよりも書き易さ優先。 速さ気にしてたらそもそもHaskell選んでない。 速さが我慢出来なくなったらCで書くよ。 ネットでperlで1000万行のファイルの行を逆順にしたいっての見つけて、Cで書いたんだが、3.1GBにもなるファイル読み込ませて逆順表示はCでも待ったな。。。 (一旦全部上から読んで位置情報を配列に入れて、最後に記録した位置から逆に辿る手法だったけど、メモリは4GBメモリの0.6%しか消費してなかった) Haskellでメモリに溜め込む書き方でも10万行くらいは我慢出来るレベル。 LLならCと同じ手法でメモリに負担かからない方法で書けるだろう。 実はHaskellにもhSeek関数あるから、多分メモリに負担かからない方法で書けると思う。 でも、もうそこまで行くんならCで気持ちよく書く。



112:デフォルトの名無しさん
17/06/25 22:57:17.16 8QFIS7Xe.net
やっぱり本気でパイプのようなストリーム処理がLLで書けないと思ってるのかな
今時はラムダなどのストリーム処理なんてJavaですら標準でついてるってのに
>>108
何が「ほんまもん」なんですかね
もしかしてどっちもO(1)で一緒とか言いたいの?
空間計算量って、それ自体はO-notationでの表記のことじゃないぞ?

113:デフォルトの名無しさん
17/06/25 23:05:34.61 CvCdLd6J.net
「副作用で世界がどんどん変わって行くのを俺が全部コントロールして阻止しなければならない…
そうでなければこの世界はバラバラになってしまう…」
「どうしたんですか?先輩」(もぐもぐ
「おお後輩!…なんだそれ?」
「売店がパンじゃなくて弁当扱い出したんですよ
ゴミかさばるから売店とこで捨てろですって。
まぁ、どうせ僕が一括して持ってくんでしょうがw」
「後輩」
「はい?」
「カレーある?」
「たしか」
「じゃあ、それ一つ」
「はい」

114:デフォルトの名無しさん
17/06/25 23:09:52.30 GaCuKOAB.net
ヤバいこいつ論点分からず突っかかってる

115:デフォルトの名無しさん
17/06/25 23:11:04.64 pYBZiqDJ.net
>>107
うーん。。。出力先もだけど、差し替え易さとか、処理対象の単位を行き来し易いとか。。。かな?
ループだとファイル単位、行単位、文字単位って決まっちゃうと、中々そこから抜け出せないけど、例えば複数ファイルの行で一番長い行を調べたいとする。
(実はCで上の逆順コード書く際のバッファの大きさを決めるために書いた)
最初、トーナメント形式に各ファイルで一番長い行出させて、そこからさらに一番を決めて出力してた。
んで、途中で全ファイルの行の長さ出た時点で一位決められるじゃん。と、数値のリストのリストを平坦化して一気に一位決めた。
そう言うループじゃ無くて、悪魔でリストのリストを受け取って~。。。って考えると簡単に行単位とかそう言う枠を超えられる。
LLでも出来るだろうけど、思いつき易い。

116:デフォルトの名無しさん
17/06/25 23:12:43.68 pYBZiqDJ.net
>>110
いあ、書けるでしょうよ。
ただ柔軟性?こう、スタイルが決まっててあんま動かせない感じを受ける。

117:デフォルトの名無しさん
17/06/25 23:15:11.08 8QFIS7Xe.net
>>109
言いたい事はわからんでもないけど、そんなにhaskell使いやすい?
自分もHaskellは複雑な構造の解析とか、何か本質的な部分の問題解くときにghci使う事あるけどさ、
実装はやっぱりpythonとかのが楽ってなったよ
Stackやcabalの設定編集も面倒だしコンパイル遅いし
mapM_あたり使うような物で純粋を目標にしてると、本末転倒になる事が多いし

118:デフォルトの名無しさん
17/06/25 23:17:22.59 8QFIS7Xe.net
>>112
ああなるほどね
難癖つけてる奴の同類か

119:デフォルトの名無しさん
17/06/25 23:27:50.72 8QFIS7Xe.net
>>114
ポイントフリースタイルとの組み合わせは確かにHaskell特有だけど、
個人的には実装はIOの文脈で、パイプ演算子とパターンマッチを使える
F#やLiveScript(altJS)のような言語方が楽だと思うぞ

120:デフォルトの名無しさん
17/06/25 23:45:27.87 pYBZiqDJ.net
>>115
なんつーか、さすがにGUIとかはC#使うわってなるけど、確かにコンパイル遅くて微妙に感じもしたけど、上のライブラリみたくガンガン関数化すればPythonでループのシーケンスにargv[1:]ってしてー。。。
逆順だとReversed(list(sys.argv[1:]))でー。。。とか調べないとな場面が度々ね。
んで、毎回複数ファイルから読み込まるのにforって書いて、行毎だとまたfor。。。
Haskellもライブラリ作る前は似たり寄ったりだったけど、ライブラリ書いてからはmfputにファイル名のリストと、各ファイル向け(1ファイル向け)に処理させたい関数渡すだけで大体のツール作れる。
多少パターンが特殊でもmfptnで対応出来る。
ループ的なのを関数に押し込んで、開きたいファイルと処理させたい関数だけ気にしてれば良くなった。
(逆にサポート外のパターンには無力だが。関数化は使い方も規定しちゃうから仕方ない)
Pythonだとあんまここまでライブラリ化出来る気がしない。。。
PythonやRubyの書き捨てでも楽だって思ってたけど、多分もう戻れない。

121:デフォルトの名無しさん
17/06/25 23:47:28.90 GaCuKOAB.net
まずなー>>98>>100をいっちゃう時点でなー
>>96で「空間計算効率が良いなんて一言も言ってない」って明言されてるにも関わらずこんなこと言ってる時点で読解力お察しだからなー

122:デフォルトの名無しさん
17/06/25 23:54:14.28 GaCuKOAB.net
相手の意図を組めないという点ではエンジニアガイジと同類っぽいなー

123:デフォルトの名無しさん
17/06/26 00:09:44.62 jZyN4LOL.net
そう。
空間計算効率の話自体はしてても、Haskellと同程度にライブラリ化したらLLが今までより空間計算効率が落ちる(もしくはイテレータ地獄になる)って言ってるだけで、Haskellの空間計算効率が良いなんて言ってない。

124:デフォルトの名無しさん
17/06/26 00:15:26.29 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:デフォルトの名無しさん
17/06/26 02:35:16.31 jZyN4LOL.net
>>122
kotlinのコードこのスレで初めて見たし、他のスレでもここまでまともなの見なかった。
thanks.
わざわざ見つかった文字列を赤文字にする所まで再現してくれるとは。。。
もうHaskellに惚れちゃってるからメインにならんだろうけど、確かに筋は良さそう。
GUIなコード書くのには良いかもしれんね。
行単位で受け取って行単位で出力する辺り、やっぱ手続き型言語と感じるけど。
だからこそ効率が良くて、そこを意識するからこそ柔軟性の限界感じる。
HaskellはStringが遅いだけで、バッファ効率自体は多分良い。
行単位とかじゃ無くて目一杯バッファに入れてると思う。
ByteString慣れないと説得力無いんだろうけど。。。
面倒いなぁ。。。
そこまでしないと勝負にならないなら、あんたの勝ちでいいよって思うもん。
手早く書けて使える速度なら充分だし。

126:デフォルトの名無しさん
17/06/26 04:34:26.65 z8x4rlt1.net
>>119
明言してると言っても実際言ってるし
やっぱり難癖つけたいだけじゃん

127:デフォルトの名無しさん
17/06/26 04:36:09.09 z8x4rlt1.net
>>120
お前もうただ言い方に突っかかってるだけだろそれ

128:デフォルトの名無しさん
17/06/26 07:49:16.94 b8W7cjsr.net
>>118
引数の逆順でファイル読み込んで一つのイテレータにするだけなら、pythonならこれだけじゃね?
(x for f in argv[1:][::-1] for x in open(f))
これをイテレータを処理する関数の引数に渡せば、お前のやりたい事できてるよね?

129:デフォルトの名無しさん
17/06/26 08:09:40.24 O05czwZw.net
そうも書けるんだ。
でももうcatコマンドだったら
main = getArgs >>= mfput fs id
って書けば良いようにライブラリ作っちゃったし、もう良い。
mf = マルチファイル

130:デフォルトの名無しさん
17/06/26 08:11:46.44 dzp1rCHS.net
>>123
入出力関数が適切にバッファリングしてると思うけど?

131:デフォルトの名無しさん
17/06/26 08:12:49.97 O05czwZw.net
逆順だとunlines.reverse.linesしないと改行が変になるから
main = mfput fs (unlines.reverse.lines)
unlines.f.limesパターンも良く使うから
main = mfput fs (fline reverse)
って書けるようにしたし。

132:デフォルトの名無しさん
17/06/26 08:15:23.64 O05czwZw.net
あ、
main = getArgs >>= mfput fs (fline reverse)
だった。

133:デフォルトの名無しさん
17/06/26 08:19:14.81 O05czwZw.net
>>128
うい、行単位でね。
Haskellは基本ファイルの中身を丸ごと文字列で受け取って、文字列で返すから、行って考えはナンバリングしたいとか、行単位で処理したいって思った時に初めてunlines.f.linesパターンで行単位に分解する。
なので出力するHaskellランタイム側にも行単位って概念が無い。

134:デフォルトの名無しさん
17/06/26 08:29:13.90 dzp1rCHS.net
>>131
行単位じゃないぞ
単純に間違ってるから事実だけ書くけど

135:デフォルトの名無しさん
17/06/26 08:29:22.47 O05czwZw.net
まあ、そんな事してるからHaskellは遅いんだろうなってのはある。
文字単位でバッファ目一杯入出力するけど、加工過程で分解して戻してってしてるんだし。

136:デフォルトの名無しさん
17/06/26 08:30:25.78 O05czwZw.net
>>132
なるけど、見かけのコードは行単位でも、バッファリングはそれとは別に行を越えて処理すると。
これは失礼。

137:デフォルトの名無しさん
17/06/26 08:37:10.13 O05czwZw.net
>>130
さらに馬鹿だ。。。
寝惚けてる。
部分適用し易いようにfsが第二引数だから
main = getArgs >>= mfput (fline reverse)
これだけで良いんだった。

138:デフォルトの名無しさん
17/06/26 08:44:37.68 e8nxxM8b.net
KotlinはJava標準ライブラリに対する拡張も上手い
Javaに背を向けたScalaとは違って、Java標準ライブラリの良いところ駄目なところを深く理解して
最小限でツボを押さえた拡張を入れてる
Scalaが一瞬で要らない子になったのも納得

139:デフォルトの名無しさん
17/06/26 08:51:02.56 O05czwZw.net
>>126
ついでに言えばPythonのは逆順でもメモリに溜め込まないはずで、大きなファイルだとPython使った方がいいってことになる。
でも、今時のスペックで問題になる程溜め込む場面自体が無い。
小説100冊分が1ファイルに入ってやっとちょっと気になるレベルだから。
なら、より短く書ける方がいい。
コンパイル遅いつっても書き捨てレベルなら毎度毎度定型的にPythonで書いてる時間で終わってる。
自分でライブラリ作ってからは完全にLL的な使い方はHaskellで良いやってなった。
素のままだとPythonのが良いけどね。
自分でライブラリ作るかどうかが決め手だった。

140:デフォルトの名無しさん
17/06/26 10:49:16.29 /blKTM20.net
複数のファイルを順番に読んでいって、特定の文字列が見つかるまで入力をそのまま出力する
文字列が見つかったら即終了
ってプログラムを、その自慢のライブラリで書いてみてよ

141:デフォルトの名無しさん
17/06/26 10:53:00.61 IaB2vgDA.net
スレ違いの日記帳の相手してどうすんの

142:デフォルトの名無しさん
17/06/26 11:35:20.04 e8nxxM8b.net
行単位なのはダサいといいながら自分のライブラリはべったり行単位に依存してるのが笑いどころだな
結局行単位が便利だと思う人が多いからlineSequenceみたいなユーティリティが標準で用意されてるだけで、
やってることはunlines.f.linesと変わらんぞ

143:デフォルトの名無しさん
17/06/26 12:07:26.65 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:デフォルトの名無しさん
17/06/26 12:56:36.59 +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:デフォルトの名無しさん
17/06/26 14:59:05.87 a2h1pIHa.net
>>122 >>136
メインプロジェクトとしていろいろ試して選んだって感じなのね
androidの主力開発言語を急に乗り換える必要が発生したから当然だけど
(な?うざいだろ?by 某M社)

146:デフォルトの名無しさん
17/06/28 22:04:57.53 l3RQzrcR.net
F#ってどうよ

147:デフォルトの名無しさん
17/06/29 00:10:11.51 qxdPWLiZ.net
OCAMLを.netで記法(not構文)変えて作りましたって感じ>F#
冗長記法だとOCAML互換性高いし

148:デフォルトの名無しさん
17/06/29 17:11:41.82 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:デフォルトの名無しさん
17/06/30 08:41:39.49 l6mEUTPw.net
F# は 関数型らしい抽象化機能※ を持っていないのが欠点
抽象化は .NET ( C# ) 互換の抽象クラスやインターフェースで実現することができる
でも型推論が効かなかったり null 安全でなかったりして辛い
※OCaml では構造的部分型やモジュール抽象化
Haskell では型クラスや型族のこと

150:デフォルトの名無しさん
17/06/30 20:40:32.58 2TVIteiy.net
型だけを見ればC#とF#は同じだろ
Haskellだって型だけを見れば他の言語で同じものは作れる
型だけを見るのが王道
逆に型を無視してHaskellにしかないものを強調するのは邪道だから
惑わされるなよ

151:デフォルトの名無しさん
17/06/30 20:44:45.42 QqdIJRSN.net
次世代言語でHaskell並にちゃんとした型システムが入ってる言語ってある?

152:デフォルトの名無しさん
17/06/30 21:24:26.03 2TVIteiy.net
Haskell並ならちゃんとしてるというのは本当か?
ちゃんとしてないから「Haskell並」や「Haskellよりマシ」と言い訳するんじゃないか

153:デフォルトの名無しさん
17/06/30 21:27:48.40 2Da2vksV.net
構造的部分型が「ちゃんとしてる」かは大いに疑問
あんなもんドカタITで使ったら悪夢だろ

154:デフォルトの名無しさん
17/06/30 21:57:41.84 onXQUvLg.net
>>151
Haskellの機能じゃないし、その上根拠もない

155:デフォルトの名無しさん
17/06/30 22:00:33.62 onXQUvLg.net
>>150
静的型に限って言えばHaskellは上位でいいんじゃない?
強いて言うなら、TypeSynonymなクラスインスタンスぐらい言語標準で入れてほしいけど

156:デフォルトの名無しさん
17/07/01 09:18:35.85 1tCqnKMv.net
中途半端な奴だな
オレが一位だというならまだわかるが
Haskellが上位だという主張の何が嬉しいのか

157:デフォルトの名無しさん
17/07/01 10:27:16.17 yvgbUlYU.net
古い関数型言語関係の本だと、論理型言語が関数型言語の次の世代とか書いてて、まあ実際最近ワトソンやらペッパーやらAI関係で注目されてるのも論理型言語な訳で。
んじゃPrologはHaskellより使い易いんか?と勉強中。
早くもコレジャナイ感が。。。
もっと今時の論理型言語って無いんかな。

158:デフォルトの名無しさん
17/07/01 10:52:05.29 yAtrmQtL.net
Adaの型はどう?

159:デフォルトの名無しさん
17/07/01 20:53:28.76 fjhXkhY/.net
>>154
また話の流れ無視してケチつけてる
ちゃんとしてるって意味だよ

160:デフォルトの名無しさん
17/07/01 22:05:29.59 wWo+lhH6.net
ケチつけたいだけのガガガガイジの相手すんなよな

161:デフォルトの名無しさん
17/07/01 22:57:47.40 1tCqnKMv.net
競争に勝つためにケチをつける自由がある
負ける自由もある
好きな方を選べ

162:デフォルトの名無しさん
17/07/02 00:11:43.12 gxDwTGkS.net
あ、そう言うこと言っちゃう?
おいらのライブラリ(>>84-85)の肝はmfputとmfwriteだが、結局他の言語で同じ様な関数作ってない。
当然だ。
Haskellは手続き型言語のforにあたるmap系の関数もそのまんま関数だし、Haskellだと自然に出力系は最後尾に追いやられるから関数化しやすいんだよ。
普通の言語は処理しながら出力する。
確かに効率が良い。
だが、再利用し難い。
今時のPCなら効率より再利用性のが重要だと思うんだ。
異論は認める。

163:デフォルトの名無しさん
17/07/02 01:00:22.98 C9YQ5tYh.net
大きなファイルを処理できないことで再利用性が大幅に低下するとは考えないのかな?
再利用の機会の多いものであれば少々手間をかけても効率を上げる価値があるケースもある

164:デフォルトの名無しさん
17/07/02 01:20:46.16 u1Wmv21R.net
LispとPrologの構文は汎用性があるからパーサーの再利用が重要だよ
文字列処理のような新しいパーサーを作る機能は重要じゃないよ
でも文字列の処理を書いてしまったらもう再利用を語る資格はないと思う

165:デフォルトの名無しさん
17/07/02 07:23:22.14 WUD7Q/xy.net
>>161
何度も書いた気はするんだが、遅延評価でメモリに溜め込んで出力してる様に見える処理も、
実際に火必要に応じて出力しながら処理してるから、.実際に溜め込んじゃうreverse使う様な処理じゃなければ大きなファイルも扱えるし、その気になればreverseな処理もCのfseek相当の関数もあるから克服出来る。
ただ、そこまで大きなファイルなら、Cで書いた方が速いの分かってるし適材適所。

166:デフォルトの名無しさん
17/07/02 08:20:48.27 uovtJU8N.net
>>163
それはちゃんと出力先があれば、の話なんだよな。
出力を怠るとメモリがお漏らししちゃうぞ。

167:デフォルトの名無しさん
17/07/02 09:08:10.92 hGhen2or.net
出力先がない状況って何ンゴ?

168:デフォルトの名無しさん
17/07/02 09:28:31.60 lZlu9LSV.net
>>160
mapに出来てforに出来ない事って何?

169:デフォルトの名無しさん
17/07/02 09:46:22.26 0JAKzAeZ.net
明らかに>>122の方が可読性が高い件

170:デフォルトの名無しさん
17/07/02 09:53:43.24 nuNQpba8.net
forに出来てgotoに出来ないことって何?

171:デフォルトの名無しさん
17/07/02 09:54:28.82 sP9TjomQ.net
もうjavascriptだけで良いよ

172:デフォルトの名無しさん
17/07/02 09:55:33.26 lZlu9LSV.net
>>168
ライブラリ化や可読性の意味でだよ

173:デフォルトの名無しさん
17/07/02 09:58:49.45 lZlu9LSV.net
ちなみにHaskellではforMとmapMは引数の順番が逆なだけ

174:デフォルトの名無しさん
17/07/02 11:33:32.10 Nl2/i6W2.net
fmapと内包表記とdo記法は外見が違うだけ
javaとscalaとkotlinみたいなもん

175:デフォルトの名無しさん
17/07/02 12:30:20.47 Ey9UZy2f.net
>>166
値を返せない。
関数合成出来ない。

176:デフォルトの名無しさん
17/07/02 12:36:37.05 0JAKzAeZ.net
>>173
今時はyieldとかあるんやで

177:デフォルトの名無しさん
17/07/02 12:39:37.96 Nl2/i6W2.net
値を返せないのは、getterを作るなというOOPの教義のせいでもある

178:デフォルトの名無しさん
17/07/02 14:28:11.11 lZlu9LSV.net
>>173
老害を自覚しましょうね

179:デフォルトの名無しさん
17/07/02 15:37:42.58 Nl2/i6W2.net
pythonのyieldはStopIterationが気持ち悪い
ではnullを返せばいいかというとそれも気持ち悪い
値を返せない空気に逆らうのは楽じゃない

180:パシュー
17/07/02 16:23:07.20 JZu2jdmH.net
スレ違いであればすみません、どなたかわかる方いらっしゃればお願いします。
先日、営業電話があり、お宅のところはau光を利用してますよね?
→今まで、この手の電話で言った覚えが無い。ただ、au光は確かに利用・・・
何故、わかるのか問いただしたところ、相手からこちらの固定電話に電話するときや、
メールに送信するときの反応、時間、信号?跳ね返りの反応? でわかりますとの回答。
確かに先日、某サイトから携帯とセットでネット環境の見直しとして、
問い合わせはしましたが、果たして、相手からメールアドレスを
送信した時の反応や送信までの時間、
電話が繋がるまでの少しの時間での反応などで分かるものなのでしょうか?
ちなみに携帯の番号は教えてません。携帯であればドコモやauなどとあたりをつけることはわかるのですが…
どなたか教えて下さい!

181:デフォルトの名無しさん
17/07/02 18:05:16.33 XQorprgY.net
選択肢が少なけりゃあてずっぽでいいだろw

182:デフォルトの名無しさん
17/07/02 18:06:59.55 O/UEQvVu.net
>>178
スレ違いどころか板違いだが、結論だけ言うとわからない
単に名簿屋から買いましたって言いづらいから、素人騙しでそう言ってるだけ
続きはヤフー知恵袋でやれ

183:デフォルトの名無しさん
17/07/02 21:50:57.08 19kDKEGS.net
>>174
yieldとか書く時点でダルい。
そんな速度変わらんのに、なんでそんな書かなあかんねん。

184:デフォルトの名無しさん
17/07/02 22:22:57.06 19kDKEGS.net
>>176
まあ若いと言えない年になりつつあって20代の頃に比べりゃ覚えが悪くなってる自覚はある。
それでもC/C++、VB(.net含む)、Java、C#、Python、Ruby、smalltalk、Delphi含むPascal、もちHaskellは割と使えるぞ。
なんと無く分かっただけなのはLisp、Prolog、Erlang。
関数論理型言語Curryはもうチョイメジャーになったら本格的に覚えたい。
でもな。
学習と挫折繰り返した末に到達したのは覚えた言語の数じゃないって事だ。
知るべきはアルゴリズムや文法じゃ無い。(いあ、後々覚えなきゃだが)
作りたいアプリに対する周辺知識。(ファイル構造だったり、アプリにしたい事象に対する知識)

185:デフォルトの名無しさん
17/07/02 22:26:25.12 19kDKEGS.net
あ、x86とARMのアセンブラもか。

186:デフォルトの名無しさん
17/07/02 22:31:49.24 19kDKEGS.net
てか、Haskellのお陰でクイックソートがやマージソートがどう言う動きしてんのか理解出来たんだよ。
そう言う意味じゃCやJavaのアルゴリズム本みたいにコード示して終わりじゃ無くて、超初心者向けのどう言う動きですって動きだけ説明してる本のが有用だわ。
それ読んでコード書けない程度の抽象的な考えが出来ない(おいらみたいな)奴はプログラマの才能無い。

187:デフォルトの名無しさん
17/07/03 00:03:55.72 Tx9mAztB.net
Haskellのinplace quicksortって可読性低くて冗長じゃん
Haskellerはあんなのが読みやすいの?
それとも、全く実用にならないquicksortのコードみて簡潔だと思っちゃったタイプ?

188:デフォルトの名無しさん
17/07/03 00:05:35.20 MHKU0t6b.net
再帰のクイックソートは理解しやすいからな
実用性はともかく

189:デフォルトの名無しさん
17/07/03 00:08:46.80 UYk8Gv77.net
>>185
うい。
TDNクイックソートで簡潔だと思ったタイプ。
遅いって分かっててもね。
動作さえ分かれば他の言語で書けるんじゃよ。
そしたら実用的になる。
LL的な使い方なら速度必要無いから、これ以上簡潔なものはない。

190:デフォルトの名無しさん
17/07/03 00:37:29.08 wW6TPWna.net
C のコードより haskell のクイックソートのが理解しやすいって
本気で言ってんの?

191:デフォルトの名無しさん
17/07/03 00:46:37.45 MHKU0t6b.net
妙なハードルつけてそれは本当の理解じゃないとかいうガイジ湧いてきたか?

192:デフォルトの名無しさん
17/07/03 00:49:28.31 oRb6DKWl.net
Cのクイックソートも悪くないよな
たった一個の配列を部分部分で触っていくだけ
範囲きめてピボットきめて交換、の繰り返し
メモリの使用に余計なところが無いからスカっとする

193:デフォルトの名無しさん
17/07/03 08:07:49.86 02h+sYLq.net
>>189
空間計算量とか知らない低脳君はアルゴリズムの話しに入ってこないでね

194:デフォルトの名無しさん
17/07/03 08:47:12.79 MHKU0t6b.net
>>191
勝手に相手の理解度決めつけるガイジはレスしないでね

195:デフォルトの名無しさん
17/07/03 08:49:31.61 MHKU0t6b.net
まずこの話計算量関係ないからな
二重の意味でガイジやね

196:デフォルトの名無しさん
17/07/03 08:57:49.58 1X06ZxCF.net
>>193
いやいや関係あるからw
in-placeって文字も読めないのかよ
図らずも君の低脳度もより明らかになってしまったね

197:デフォルトの名無しさん
17/07/03 08:59:51.73 deAVzAEO.net
>>194
in-placeの話してるのお前だけだから
自分の話したいことと人が話してることの区別もつかないとか凄いな

198:デフォルトの名無しさん
17/07/03 09:05:27.81 1X06ZxCF.net
>>195
だから低脳はアルゴリズムの話に入ってこなくて良いって
ドカタは用意された関数呼び出すだけなんだから

199:デフォルトの名無しさん
17/07/03 09:07:05.32 1X06ZxCF.net
でもO(n)とO(n log n)の区別もつかない低脳が次世代言語について語ってるって面白いな

200:デフォルトの名無しさん
17/07/03 09:11:01.34 deAVzAEO.net
>>196
周り見ろよ。今そんな話してるのお前だけだぞ
話に入ってきたのはお前だ
あと2回目だけど勝手に人をin-placeのクイックソート理解してない扱いするのやめてね。流石に不快だから

201:デフォルトの名無しさん
17/07/03 09:31:49.69 1X06ZxCF.net
>>198
ああゴメンゴメン
>>189がin-placeを「妙なハードル」とかとんでもない事言ってるから、つい言葉がキツくなっちゃった
ハードルどころか基本中の基本だよねw

202:デフォルトの名無しさん
17/07/03 09:49:48.18 deAVzAEO.net
>>199
ああそういうことね
ハードルはin-placeを指して言ったんではないんよ
ID:19kDKEGSはHaskellのコードで何をやってるか理解してから普通のクイックソート理解したみたいで、そこに>>188が来たから理解というものに妙なハードルというか拘りみたいなものを持っていると言いたかったんよ
たしかにハードルっていう表現はあんまり良くなかったな

203:デフォルトの名無しさん
17/07/03 10:41:46.80 apAa5CHd.net
Cが原文でHaskellが翻訳文という前提なら
誤訳のリスクがあるHaskellの方が読みやすいってことは理論上ありえないね
でも理論には前提があるから、前提をぶち壊せば理論上ありえないことが実現する

204:デフォルトの名無しさん
17/07/03 11:19:50.56 6QSWtKdI.net
>>188
そのクイックソートのコードは知らないから的外れになるかもしれないが
普通は、Cのコードなんて慣れている人以外には判じ物みたいで
何だってHaskellのコードの方が判りやすいだろう

205:デフォルトの名無しさん
17/07/03 14:43:11.96 X+xTdZLt.net
次世代言語スレで何でみんなCとHaskellの話してんねん
そのうちCOBOLとかForth


206:の話になるのか



207:デフォルトの名無しさん
17/07/03 15:00:48.27 JOeKNGQV.net
全部、第3世代言語じゃ

208:デフォルトの名無しさん
17/07/03 16:15:40.55 NT4tSDag.net
どんどんプッシュしたくなる次世代言語が見えなくて
現実逃避してるような気がするのは気のせい?

209:デフォルトの名無しさん
17/07/03 17:12:08.86 apAa5CHd.net
言語を使いこなす正攻法よりもマインドをコントロールする裏技ばかり使うクズが増えた
言語の進化は止まった

210:デフォルトの名無しさん
17/07/03 17:41:53.22 XPxmwxQZ.net
>>203
CはともかくHaskellは永遠の次世代言語やぞ

211:デフォルトの名無しさん
17/07/03 18:09:44.24 VYGl+Wps.net
娘に年齢を越されるんですね。

212:デフォルトの名無しさん
17/07/03 20:16:26.39 wW6TPWna.net
普通にググればわかりやすい説明がでてくるというのに。。
本当に haskell のが分かりやすいなら下の wiki のページを書き換えてこいや。
URLリンク(ja.wikipedia.org)

213:デフォルトの名無しさん
17/07/03 20:54:48.22 UwBLUxpl.net
>>188
本気も本気。
んで、やっとCのクイックソートの動きや無駄の無さが理解できたし、自分で(コピペじゃ無く)書けるようになった。
才能ある奴は最初から理解出来るんだろうけど、おいらはHaskell経由する事で色々理解出来たし、Haskellでなら何でも書けるぞ‼︎ってなってから、やっと文法やアルゴリズム以上に大事なのはデータ構造だと気付いた。
メジャーな画像ファイルのデータ構造書いてるサイトあったら教えてくれ。
そしたら画像変換ソフト作る。
今はテキストなら分かってるからCUIのviライクな(悪魔でライク。自分なりにもっと一貫性のある移動コマンドにする予定)テキストエディタ今度の休みから作り始める予定。
Haskell普及の宣伝の一助になれば良いな。。。

214:デフォルトの名無しさん
17/07/03 20:56:29.38 NMIlsMGj.net
URLリンク(codereview.stackexchange.com)

215:デフォルトの名無しさん
17/07/03 20:58:45.47 uur8r/IN.net
ガイジガイジ言ってるやつウザい
話入って来れないならレスすんな

216:デフォルトの名無しさん
17/07/03 21:02:05.61 oRb6DKWl.net
>>210
お前ごときがhaskell語るのもうやめたら?
俺の言ってる意味わかる?

217:デフォルトの名無しさん
17/07/03 21:06:06.20 zOP0e03G.net
そんなことよりElixirやろうぜ!楽しいよ!

218:デフォルトの名無しさん
17/07/03 21:13:32.99 lw0BfZsD.net
ぜひ樂しさを語ってくれ

219:デフォルトの名無しさん
17/07/03 21:27:19.89 UwBLUxpl.net
>>213
他に語る奴いないから語ってる。
代わりに普及に貢献してくれるんならROMっても良い。
それ位惚れてんだ。

220:デフォルトの名無しさん
17/07/03 21:27:43.28 sUmj13cM.net
どうしてもエリクシールって読んじゃって

221:デフォルトの名無しさん
17/07/03 21:29:54.44 oRb6DKWl.net
>>216
お前のレス一切いらんから一生ROMれ。
つづきはお前のブログでやれ。

222:デフォルトの名無しさん
17/07/03 21:34:45.78 zOP0e03G.net
Haskellの普及を一時やってたんだがElixirに乗り換えたお

223:デフォルトの名無しさん
17/07/03 21:38:50.74 OUQpTrGv.net
>>214
エリクサーは並列処理楽そうだから興味ある。
ErlangはPrologっぽいのが馴染めなかったからね。。。
(そのPrologも、地味に論理型言語の実験場的役割してるって記事読んで、制約論理プログラミングが取り入れられてるの実感して見直したところだけど)

224:デフォルトの名無しさん
17/07/03 21:40:10.37 OUQpTrGv.net
>>218
なら、代わりに普及してくれ。
不安に思ったらすぐ出てくるぞ。

225:デフォルトの名無しさん
17/07/03 21:44:50.57 Rzh0OD1D.net
いい、先生の言うことをよく聞いて。
Haskellは永久に普及しないの

226:デフォルトの名無しさん
17/07/03 21:51:13.50 PMhP6mgs.net
分かってんよチクショウ。
でもな。
これ程入門者向けの言語は無いと思ってるんだ。
それこそ、小学生からプログラミングが取り入れられるなら、Haskell教えるべきだってくらいに。
構造が分かれば、手続き型言語後から覚えても役に立つ。
Haskellはプログラムの構造を明らかにする。

227:デフォルトの名無しさん
17/07/03 21:58:28.81 oRb6DKWl.net
>>223
分かりやすく言う
お前はもうこのスレに来るな
お前のレスは一切必要が無い

228:デフォルトの名無しさん
17/07/03 22:08:00.17 deAVzAEO.net
Haskellの人結構いいと思うけどな
言ってることもまあまあ妥当だと思うぞ

229:デフォルトの名無しさん
17/07/03 22:09:47.05 JRmmHagw.net
>>223
haskellが小学生の入門に最適な理由を小学生にもわかるように説明してみろよw

230:デフォルトの名無しさん
17/07/03 22:15:14.50 wybralPC.net
このスレだけじゃなく他もやめてくれ
ほんと迷惑以外の何者でもない
そのレベルのHaskellの布教や他言語disが死体ならブログでやってくれ
でなきゃせめて読まずに済むようにコテハン付けてくれ

231:デフォルトの名無しさん
17/07/03 22:17:15.83 wybralPC.net
>>226
相手にするのもやめてくれ
過去の経験から
コイツからろくな考察が出てくるわきゃない

232:デフォルトの名無しさん
17/07/03 22:20:39.13 wybralPC.net
コイツのつまんない自己満ライブラリ連投がなきゃスレがにぎわんってなら
過疎って落ちる方がずっとマシ

233:デフォルトの名無しさん
17/07/03 22:32:40.33 r5yHurmA.net
一つにまとめてくれんかね
なんで言語乱発すんの

234:デフォルトの名無しさん
17/07/03 22:40:55.36 hTTgnp+k.net
>>224
んじゃ、課題な。
これ解決したらROMる。
>>84-85のコードで>>85だな。
mfptn,mfput,mfwriteに相当する汎用的な関数手続き型言語で書いてくれ。
Haskellより簡潔な形で。
表面的にはクロージャ渡してループの中の変数に渡せば良い。
問題は、オープンするには純粋なファイル名だが、表示する時ファイル名を青文字にしたいとかそう言うカスタマイズ可能なmfptnが書けるかだ。
書ければmfputもmfwriteもmfptn使って似た様なコード書かなくて済む様になる。
>>225
ありがとう。
これでも言語オタとして色んな言語渡り歩いて導き出した結論。
やっとプログラマのスタートラインに立てた実感からの発言。
マジレスってやつなんだ。
間違ってたら指摘も結構。
真摯に受け止める。
今はプログラミング用のコマンド作ってるのがメイン。
自分の為のツール作るのが一番モチベーション保てるね。
HaskellerならEmacsって思ってたけど、viが軽くて、実験的に書いた行を消したいだけとかに良いね。
(Emacs、編集したいだけなのに型検査だかコンパイルだかやってんじゃねーよボケ)
ただ、せっかくhjklで上下左右一文字移動なんだから、その上下段のyuioやbnm,で単語や行の移動しても良いじゃんよって思ったから作ろうと思ってる。
u/Uのアンドゥー/リドゥーは。。。CntlとAltかな。。。

235:デフォルトの名無しさん
17/07/03 23:04:54.14 oRb6DKWl.net
>>231
お前の課題が解決しようがしまいがROMれ
ブログの書き方がわからんのならぐぐれ
お前の愚にもつかない自己紹介
愚にもつかないポエムはそこで存分にやれ
それはもうそこで存分にやってくれ

236:デフォルトの名無しさん
17/07/03 23:08:44.96 hTTgnp+k.net
>>226
小学生に算数って実は面白いかも?って思ってもらう本(電子書籍)書いてからね。
元々書きたいとは思ってるんよ。
Haskell入門以前って電子書籍は出してる。
以前って付くの一冊しか無いから一発。
普通の再帰が末尾再帰に自動変換の下りは嘘っぱちで、スタック消費を抑えただけだったみたいなんだけど、それ以外なら関数脳作る一助になると思う。
お金あるならプログラミング in OCamlのが関数脳作るのに良いと思うけど。
(これの著者がHaskell本書いてくれれば最高なのに)

237:デフォルトの名無しさん
17/07/03 23:11:09.43 hTTgnp+k.net
>>232
あえて嫌われ役やってんのに、課題解かずにROMれとかおいらの思う壺。
やはりHaskellはLLよりも再利用性が高い。

238:デフォルトの名無しさん
17/07/03 23:16:44.69 lw0BfZsD.net
>>233
2冊ww

239:デフォルトの名無しさん
17/07/03 23:16:55.17 apAa5CHd.net
ジョブズのように美しいデザインに異常にこだわるタイプが
もし表現の自由や基本的人権を美しくないと判断したら何が起きるか
既に何か起きてるか

240:デフォルトの名無しさん
17/07/03 23:30:27.58 hTTgnp+k.net
>>235
多分尼とパブーの2冊。
内容同じ。
パブーは無料。
尼は無料に出来なくて仕方なく100円。。。

241:デフォルトの名無しさん
17/07/04 00:13:38.28 ay5PiZ4N.net
nl, tac, grepで全部事足りるんだが

242:デフォルトの名無しさん
17/07/04 00:47:05.17 huKUW2nT.net
nlなんて書いた覚えないが。。。
tacやgrepと言うコマンド名を知らなかった頃に書いたのを、リネームしただけだからね。
そう言う機能がないか調べるより書いちゃえって主義。
おいらの場合、そうでも無いとプログラミング力が付かない。

243:デフォルトの名無しさん
17/07/04 04:24:48.11 LX4AtBOp.net
>>231
スレチだけどVimのyuioを潰すのは許せん
それはマジで許せん

244:デフォルトの名無しさん
17/07/04 06:47:47.53 IVSy+wIs.net
>>239
再利用性が大事なんじゃなかったのか?

245:デフォルトの名無しさん
17/07/04 12:23:37.78 FYa81knm.net
Linux始めたばかりで探すより書いたほうが早かったから。
どっちが早いかの問題。

246:デフォルトの名無しさん
17/07/04 12:25:05.34 FYa81knm.net
>>240
自分用だから。。。
公開するとしても選ぶ自由はユーザーにある。

247:デフォルトの名無しさん
17/07/04 14:01:02.84 pyKR417/.net
やんくとアンドゥ潰すとか誰が使うんだよ

248:デフォルトの名無しさん
17/07/04 14:09:58.01 pyKR417/.net
よく見たらinsertモードと改行insertも潰れるのかwww
もうそれvimでもなんでもねーやん

249:デフォルトの名無しさん
17/07/04 14:15:22.45 vfHvNnoh.net
勉強せずに自分で作るとか言ってるとヤンクアンドゥインサート改行インサート潰すガイジに成り下がるのか
やっぱり慣例の勉強って大切だわ

250:デフォルトの名無しさん
17/07/04 18:25:49.77 ZOpHOB0v.net
再利用性大事とか言いつつオレオレ仕様で車輪の再発明しちゃうアホンダラなんだなぁHaskellerって
机の上のお勉強はできるのかもわからんが、ギークとしてのセンスが皆無なんだな

251:デフォルトの名無しさん
17/07/04 18:30:51.12 ZOpHOB0v.net
探す手間より書いた方が早いとか言うやつは、自分の書いたもの見せびらかしたいだけ
お勉強はできるからそこそこのものを作れるんだろうが
既存の枯れたものの仕様ガン無視で作るせいで結局作ったお前さんしか再利用できないオナニーの産物

252:デフォルトの名無しさん
17/07/04 18:35:07.55 ZOpHOB0v.net
別に言語の再利用性は机の上でのお勉強の得意なお前さんの言う通り
Haskellの方が高いんじゃねえの?しらんけど
でもお前さんがオレオレで作ったものの再利用性は低いよなあってお話


253: なんせ既にあるものガン無視でオレオレ仕様の再発明しかしてねえんだから



254:デフォルトの名無しさん
17/07/04 19:11:10.26 pyKR417/.net
>>239
いくらなんでもgrepも知らないって調べるより書いちゃえも何も、
単純にエンジニア、ライブラリアンとしてものを知らなすぎだろ
ls, find, cat, grep, sed, awk, xargsくらいは、知ってないとわけわからんよ
プログラミング力どうこう以前の問題
Haskellプログラマが全員こんなに馬鹿だと思われるのはすごく悲しい

255:デフォルトの名無しさん
17/07/04 19:26:44.78 Mgy1XtU/.net
cat より less
cat より vi

256:デフォルトの名無しさん
17/07/04 19:32:55.21 bn9cQclE.net
catよりdog

257: ◆QZaw55cn4c
17/07/04 20:15:18.37 wi75CMMG.net
>>184
Haskell のクイックソートやマージソートは本質を失っている,重要なのはインプレイス性だが haskell にそれは望めない

258:デフォルトの名無しさん
17/07/04 20:35:49.53 KFTmH+Xw.net
>>244-246
そうか、ヤンクも潰しちゃうねぇ。。。
あれか。
Ctrl+hjklとかAlt+hjklに移動は集約しちゃうか。
コーディングしたくて気が早って"("押したら移動しちゃうとかが不便で、そう言うの起きにくい仕様にしたいだけなのよね。
オレオレのオナニーで結構だとは思うんだけど、不便にしたいわけじゃない。
少なくともおいらにとっては便利じゃないと。
>>247
ずっとWinだったんでcdとcatとlsはとりあえず分かったけど、awkとsedは聞いた事あるだけで、どんな機能か未だ分からず。
時間見て調べる予定。
grep,findはそう言う機能はあるだろうなとは思ったけどfindは望む機能じゃなかった。
grepは鯖入門書読むまで知らなかった。
元々そう言う不便な環境に身を置けば欲しい機能は自分で書くしかなくなるから、プログラミング能力伸びるだろってのが目的なんで、ある意味目論見通り。

259:デフォルトの名無しさん
17/07/04 20:37:38.04 KFTmH+Xw.net
>>253
インプレイス性と言うのは何でせう?
それが分からんと反論も同意も何も出来ない。

260:デフォルトの名無しさん
17/07/04 22:34:12.67 otSZmZCY.net
In-placeじゃね?
(ほとんど)メモリ追加せずにその場でソート

261:デフォルトの名無しさん
17/07/04 23:18:10.83 KFTmH+Xw.net
ああ、省メモリってことね。
そりゃそうだ。
おいらだって手続き型言語で書けばなるべく書き換えで済まそうとする。
手軽さ優先か性能優先かだよ。
でも、性能優先のコードしか提示されなかった頃はどう言う動きか読み取れなかった。
その時点でプログラマの才能無いんだろうけど。
Haskellのコード見て、手続き型言語で書くには?ってなったら自然と配列書き換えられるんだから、書き換えた方がメモリ少なくて済む(&配列追加の手間が無い)ってなる。
言語によって面倒くささが違うんよね。
例えば総当たりソートとクイックソートは手続き型言語じゃ難易度に大差あるけど、関数型言語は大差無かったり。
LLでも大差無いけど、おいらのmfptn関数みたいなのがLLって感じで、難しい言語でよく使うパターンを文法やライブラリにしましたってだけで、そこから外れると普通の手続き型言語。

262: ◆QZaw55cn4c
17/07/05 03:30:13.16 CpudxOdu.net
>>256
データのコピーを極力少なくしてその場でソート

263:デフォルトの名無しさん
17/07/05 06:47:52.98 x40Yunw0.net
>>250
そこから漫画みたいなインフレが起きて「perlくらい知ってないと」ってなるのが
linuxの醍醐味

264:デフォルトの名無しさん
17/07/05 07:01:16.37 SG/9DEZV.net
>>257
お前Haskellで書きにくいコードから逃げて、
書けるとこだけ書いてHaskell書きやすいって言ってるだけじゃねーか
お前はそのクソコードで満足なのかもしれんが、それを押し付けてくんな
違うっていうならin-placeのソート書いてから能書き垂れろ

265:デフォルトの名無しさん
17/07/05 07:27:05.94 +U8R7kGU.net
それの何がいけないんだろうか。。。
速度欲しい時だけCで書けば良いってのはまさにそれだが。
Haskellでも書けないことはないんだろうけど、楽するための言語なんだから、そんな事するならCで書くよ。
おいらにとってはLL的な用途にはLLよりHaskellのが楽だった。
それだけの事。

266:デフォルトの名無しさん
17/07/05 07:33:33.70 x40Yunw0.net
仕様書の常套手段か
書ける仕様だけ書いて残りは実装依存で逃げる

267:デフォルトの名無しさん
17/07/05 07:38:51.44 bh56GpK2.net
Haskellの再利用性に関する重大な課題は>>80-81で既に示されてるね
mfput君の意見がまだみたいだけど見解は?

268:デフォルトの名無しさん
17/07/05 07:51:17.76 0jzZYcN5.net
>>142も結局mfputしか再利用出来てないし
mfput君は今のところ肝心の再利用性の高さについてはほとんど立証できていないように見える
Haskell云々というより本人の設計センスの問題な気もするが

269:デフォルトの名無しさん
17/07/05 08:10:24.97 SG/9DEZV.net
お前の意見なんて「自分のような初心者にとってはHaskellは分かりやすかった、以上」だけで十分なんだよ
お前のクソ初心者臭いコードやポエムを読まされて
他者が得るものがあるとでも?

270:デフォルトの名無しさん
17/07/05 08:28:35.89 +4iFZrIp.net
2chのレスに得るもの求めるとかガイジかよ………
Stack overflow 池

271:デフォルトの名無しさん
17/07/05 08:33:57.06 6kuRSSMe.net
俺は2chで煽り耐性を身に着けた

272:デフォルトの名無しさん
17/07/05 10:00:37.58 tWLafY8Y.net
このスレでガイジガイジ連呼してるやつマジ病気かよ
どんだけリアルで悲惨な人生だったらこうなるんだ

273:デフォルトの名無しさん
17/07/05 10:24:17.91 x40Yunw0.net
漫画みたいにいつまでたっても話が終わらない
病気か才能かはわからんが

274:デフォルトの名無しさん
17/07/05 12:26:16.42 +4iFZrIp.net
Haskellの言ってることは一応一貫してる
そこに突っ込んでる人は一貫してる部分を読めていないとしか思えないツッコミばっかり
そんな的を外したらツッコミに逐一返信してるんだから永久に終わるわけがない

275:デフォルトの名無しさん
17/07/05 12:32:33.78 GeoIRJSP.net
>>263
>>81がまさにおいらの回答だが。。。
mfputはLLより短く書けないもんかと考えた時、あらゆるものが関数何だから関数化出来るじゃんって思い付いた。

276:デフォルトの名無しさん
17/07/05 12:38:33.21 GeoIRJSP.net
>>265
あはは。
その通りだよ。
LLより初心者に優しいってのがまず一つ。
LLに限らないけど、定型文になってる部分もパターン化して関数にし易い(LLでも出来るだろうがスマートじゃない)

277:デフォルトの名無しさん
17/07/05 12:45:05.83 XfevCCY3.net
しんちゃんスレ

278:デフォルトの名無しさん
17/07/05 12:53:14.41 PFivIsqu.net
>>271
81が回答とかさすがにガチハスケラにぶん殴られるぞ
ハスケラはこういう突っ込みには
「呼び出し側も含めて設計を見直せ。状態を持たせるというのは本質的に重大な変更であるから影響が大きいのは当然である。」と答えるのがテンプレだ
覚えておけば役に立つよ

279:デフォルトの名無しさん
17/07/05 13:23:50.44 x40Yunw0.net
Javaでもうっかりstatic変数を使うと設計を見直させられるパターンだろ
thisとかselfとかいう引数を追加するのが定石
これはHaskellでも簡単にできる

280:デフォルトの名無しさん
17/07/05 13:59:00.37 PFivIsqu.net
Javaの場合はインスタンスフィールドでいいだろ
Haskellだと直前の値を保持しているところまで遡って全部修正かな

281:デフォルトの名無しさん
17/07/05 21:01:53.58 z3CI8qH6.net
>>274
STモナドとかで実現は出来るんだけどさ。
GUIならGUI、DBならDBに状態保持を任せちゃった方がスマートだとは思わないかい?
テンプレじゃ無く、あんたのハートに聞いてる。
ああそうそう、実はgrepは検索文字列が見つかった前後20文字表示にするか行表示にするか迷って、行表示の方が簡単だからたまたまgrepと同じ機能になっただけで、前後20文字の場合は別にファイルの内容丸ごと記憶しておく変数を引き回しても良かった。
どうせ遅延評価で必要になるまで読み込まれないから2ファイル同時でもたかが知れてるしね。
丸ごと記憶する方法も、見つかったら29文字以前をGCしやすいようにするのと1から検索させるのとあるけど、小説10-20冊を1ファイルに収めても問題無いんだから気にする事もない。

282:デフォルトの名無しさん
17/07/05 21:03:02.86 z3CI8qH6.net
x29
o20

283:デフォルトの名無しさん
17/07/05 21:21:41.45 HfOW3or9.net
いかにHaskellキチがお勉強できて正しいこと言ってようと
こいつがgrepを始めとしたツールを知らない無知で
オレオレ仕様で再発明してドヤ顔してるトンチキなのには変わりないんだよな

284:デフォルトの名無しさん
17/07/05 21:23:14.50 HfOW3or9.net
Haskellが使える言語かどうかは知らんけどHaskellerがオタンコナスなことはまた一つ実例が出てきてしまった以上の情報はないね

285:デフォルトの名無しさん
17/07/05 21:27:53.06 vgwSeoh2.net
このHaskellerってファイル読み込んで同じファイルに上書きするの出来ないとか言ってたはずだけど、
それでどうやってテキストエディタ作るんだろう?
まさか全部DBにデータ入れるのか?
テキストエディタのインストールの前にDBのインストールが必要ってことか?

286:デフォルトの名無しさん
17/07/05 21:39:14.16 HfOW3or9.net
>>281
一時ファイルに書き出してムープじゃね?

287:デフォルトの名無しさん
17/07/05 21:46:58.82 z3CI8qH6.net
>>279-280
おいらがトンチキ呼ばわりはいいんだよ。
あれ、Haskell使えるんか?使ってみようかなって人が増えれば。
んで、そんな無知で馬鹿な奴でも書けるアピールな。

288:デフォルトの名無しさん
17/07/05 21:50:19.56 z3CI8qH6.net
>>281
それはwriteFile関数の仕様。
readFaile幾つ読み込んでもいいし、下位の関数探ってれば複数ファイル書き込めるのもあるだろう。
安全の為の仕様だし、安全じゃないのを許容するのがあるはず。
最悪、Cで書いてFFIでHaskellから呼べば良い。

289:デフォルトの名無しさん
17/07/05 22:04:05.82 fqeoBJ4G.net
>>277
全く思わないな
なんで勝手にGUIやDBを前提にしてるんだ?
これまで状態を持たなかった関数を前後の値を考慮するように変更したいというのは
君の大好きな「LL的なタスク」であってもそれほど珍しい状況ではないように思うぞ?

290:デフォルトの名無しさん
17/07/05 22:42:05.37 +4iFZrIp.net
>>281
よく知らんけどleksahって言うHaskell製IDEが実在しているのでこのHaskellの人が言ってることが間違ってるのは間違いない

291:デフォルトの名無しさん
17/07/05 22:49:59.85 +4iFZrIp.net
つーか>>274>>277で返すのは会話が噛み合ってないだろ
正しい答えは「ごめんなさい」だ

292:デフォルトの名無しさん
17/07/05 23:03:23.20 bh56GpK2.net
だいたいDBやGUIに持たせるといってもどこからそのコンテキストを持ってくるんだ?
結局呼び出し階層を遡って大修正だろう
暗黙的に環境の状態にアクセスするような関数があればいいとか思ってるなら、冗談抜きで怖いハスケラに夜道で襲われるレベルの邪悪な思想だぞそれ

293:デフォルトの名無しさん
17/07/06 00:04:57.61 CrSqEEHs.net
大きすぎて修正できないならさっさと諦めて逃げれば邪悪にはならないが
逃げるくらいなら邪悪な方がマシだと思うから邪悪になる

294:デフォルトの名無しさん
17/07/06 01:50:43.47 9Gxa3EmF.net
>>283
まーHaskell自体は決して使えん言語ではないのは知ってる
書くもんが大型化してくるとデフォ遅延評価のせいで副作用周りのデバッグが発狂難易度になるとか
ちょっと気を抜くと遅延サンクが膨れ上がって死ぬとか
色々あるからあんまりモノリシックにでかいものを複数人で書くのには向いてない言語だとも思うがね
そういう意味でHaskellはハードウェア記述言語に向いてると思うんだが、まだこれといったやつが出てきてないんだよな

295:デフォルトの名無しさん
17/07/06 02:15:34.43 pIo4ewrq.net
そもそも関数型が解決しようとした問題は、副作用の連鎖による想定外のトラブルだろ
大規模な構造をどう記述するかということであって、もうそれはOOPが解決してしまった

296:デフォルトの名無しさん
17/07/06 08:32:49.91 KLsItAo2.net
つまり純粋関数型は使えないと?

297:デフォルトの名無しさん
17/07/06 08:51:12.34 EB5tIDF+.net
その純粋ってのを保証してるのはコンパイル時の型チェックだな
それがなければ使える

298:デフォルトの名無しさん
17/07/06 09:13:26.21 Xn+el2UL.net
つまりscala最強ってことか

299:デフォルトの名無しさん
17/07/06 09:24:44.24 4UTaW8nX.net
オブジェクト指向プログラムで副作用は解決してないだろ。どうみても。

300:デフォルトの名無しさん
17/07/06 09:46:24.49 EB5tIDF+.net
288の言う「呼び出し階層を遡って大修正」は
副作用有り・無しのチェックだけじゃない
ヌルを許容する・しないのチェックで破綻するケースもある

301:デフォルトの名無しさん
17/07/06 10:02:36.10 tNWdrmh7.net
>>296
あるある
汎用性を考え出すとモナドとMaybeにまみれて何のための静的関数型かよく分からなくなってくるんだよな

302:デフォルトの名無しさん
17/07/06 17:43:28.35 FO8iZdOb.net
>>290
うちのプロジェクトは遅延評価禁止ね全部先行評価で書け
oO(ソースが全然Haskellに見えないw)

303:デフォルトの名無しさん
17/07/06 19:15:58.18 NwSzXY2t.net
プログラムが現実と関係を持ちつつ社会の中で動いている以上副作用を無くすことはできない。
全体を停めることができず、部分単位でアップデートを繰り返すならなおさら。
そう言った意味で『関数型言語』は結局いつまでも実現することのない賽の河原の石積み。

304:デフォルトの名無しさん
17/07/06 20:11:21.34 lW8KZ3Ns.net
まあ言語の機能によって副作用のないコードエリアを明示するってアイディアは
良いと思うんだけどね。
haskell は変な極論を推し進めてどうしようもなくなってるという印象が強い。

305:デフォルトの名無しさん
17/07/06 20:13:21.99 dOY2yuiz.net
>>297
>>299
副作用が多くてMaybeモナドだらけになるって設計が悪いだけじゃない?
それって普通のプログラミング言語で書いても副作用だらけのプログラム書くってことでしょ?
どんなプログラミング言語でも副作用はなるべく少ない箇所に押し込むでしょ

306:デフォルトの名無しさん
17/07/06 20:29:36.80 XEsudacO.net
Haskellは副作用禁止の言語だと思ってる奴多いんか?
副作用と純粋関数に分けて書くってだけだぞ

307:デフォルトの名無しさん
17/07/06 20:35:22.98 td/2KdW6.net
>>301
Haskellは極論バカだから特にそこが問題になるんでしょ
オブジェクト指向では少々副作用があろうが汚かろうがクラスに閉じ込めて外からは「問題にならない」ようにすることができる
mfput(笑)みたいな小さな問題と違って、現実世界の問題を相手にすると常に最初から完璧な設計をするなんて不可能だしね

308:デフォルトの名無しさん
17/07/06 20:39:55.53 td/2KdW6.net
>>302
そんな勘違いをしてる奴は誰もいないと思うぞ
副作用の混入に対してセンシティブすぎるという話

309:デフォルトの名無しさん
17/07/06 22:50:47.39 C7kBl0W7.net
そもそもプログラム自体が副作用そのものだし

310:デフォルトの名無しさん
17/07/06 23:11:16.25 4UTaW8nX.net
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));
URLリンク(ideone.com)

311:デフォルトの名無しさん
17/07/07 06:18:59.39 1OiH67XQ.net
>>290
ハードウェア記述言語向きってのは使った事ないけど、分かる気がする。
おいらもHaskellでGUIから何から書き下すのは出来なくはないけどそれOOPで良いよねって思ってて、
でもある意味CUIよりGUIの方がメッセージやイベントに答えるコード書けば良いだけなんだから、
むしろGUIをHTMLやXAMLで記述するようになった今だからこそHaskellは環境さえ整えばGUIも向いてると思うんだよね。
その環境が絶望的に揃ってないだけで。
なんつーかな。
あんたと思ってんのは基本同じだな。
全部Haskellで書こうとするから無理が出る。
上手に副作用部分を外部ツールなり、他の言語に任せて連携させればこれ程シンプルかつ堅牢に作れる言語もなかろうって思う。

312:デフォルトの名無しさん
17/07/07 09:21:04.24 Od+E3Jwj.net
つまりhaskellではなくOOPと関数とマルチパラダイムが答えということか
あ、Scalaやね

313:デフォルトの名無しさん
17/07/07 09:44:10.95 SZnapx63.net
今だとGoogleのお墨付きを貰ったKotlinだろう
mfput君のレベルだと全く不足ないことは上で実証済みだし

314:デフォルトの名無しさん
17/07/07 10:33:52.64 U3HkjAD4.net
Kotlinよさげ
型クラスもしくは高階型って使える?

315:デフォルトの名無しさん
17/07/07 10:37:23.83 NO/da/cw.net
>>308
HTMLやXAMLでGUI部分書くようになった今、OOPの役割は終わったのに醜く延命してるって話。
でもコード資産があるから、ベストじゃ無いって分かっててもそうなるんだろうな。

316:デフォルトの名無しさん
17/07/07 12:01:01.33 GpMOtbcc.net
>>311
GUIの中で副作用のないところをhtmlに切り出せたなら
あとは副作用をどう上手く書くかだろ?
だったらHaskellみたいな純粋関数型は益々いらんって事にならんか?

317:デフォルトの名無しさん
17/07/07 12:31:39.94 qM4KnfoJ.net
GUIで書きたいのはただの副作用ではなく非同期な副作用
非同期とXMLを流行らせたJSの手柄をOOPの手柄にするのはアクロバティック過ぎる

318:デフォルトの名無しさん
17/07/07 12:34:56.69 xvg52mfm.net
え、逆だろ?
HTMLやXAMLは副作用の排出口。
だからそれらに書き込むような表層部分に副作用部分を集める。
むしろ今だからこそHaskellがGUIで活きる可能性が出て来た。
例えばエディタ作るとして、CUIだと文字入力監視用のループがある。
GUIだと文字入力されたってイベントに対応すれば良いから、HaskellだとGUIのがエディタ書きやすいと予想してる。
んで、そっからは文字列処理得意なHaskellの独壇場。
普通のアプリなら文字列処理をロジックと読み替えて良い。
まあ実はHaskellだけでGUI書いてもJavaやC#みたいにIDEが整備されてる言語には劣るけど、整備されてない言語とならどっこいどっこいで、特にGUI苦手ってわけでも無いんだけども。
Haskellっぽくなくていやんな見た目なだけで。

319:デフォルトの名無しさん
17/07/07 13:09:15.86 24WGQrlF.net
>>311
うん、意味不明
独自のwidgetを作るのにOOPは必要

320:デフォルトの名無しさん
17/07/07 13:14:54.40 SZnapx63.net
>>314
そこまで構想(妄想?)ができたならもうそろそろいいだろ
続きはgithubで語れ
mfput(笑)みたいなサンプルじゃなく、�


321:ソゃんと実用性のあるGUI&DBアプリを作ってくれよ 期待してるぞ



322:デフォルトの名無しさん
17/07/07 13:39:25.73 kkdCXGBc.net
>>314
GUIアプリを画面を入力すると画面を出力するプロセスの集合体と見做すのはCOBOL時代には主流だった発想だよ(今でもWebには色濃く残っている)
自分でやってみりゃわかるけど、確かにスケールはさせやすいんだがくだらん単純作業とコピペを延々繰り返すような開発になるし
大きな手戻りが生じるともう悲惨

323:デフォルトの名無しさん
17/07/07 14:05:26.16 C9MPrnMO.net
うい。
作れたら出してみる。

324:デフォルトの名無しさん
17/07/07 21:35:56.42 0YPYv3Ek.net
出すまで帰って来るなよ

325:あ
17/07/07 22:07:41.70 TSmGX11I.net
ダム端の画面エンジン面倒見たことあるわ。
文字入力監視のループと、GUIのイベントのdispatchループがどう違うかわからんな。
WinMainとGetMessageとか、XlibのXNextEventからGUIアプリ作ったこと無くて知らないだけじゃねえの?
副作用の出口ではないような。
WM_PAINTの処理中に描画以外やるべきで無いのと同じように、画面周りは出力に徹しないと話がまとまらん。
入力の処理なんか、フォーカス持ってるやつにメッセージ投げるだけだろ。

326:デフォルトの名無しさん
17/07/09 05:20:26.84 iVqKXTPM.net
昨今の話題にのせられてKotlinの入門編読んでみたけど、なんかイマイチだった・・・
関数の引数は型推論してくれんの?カリー化して部分適用とか力ずくでやらんといかんの?パイプライン演算子は・・・
今のところ不安しか感じてない、次世代言語の劣化版でバカチョン言語ってのがKotlinの実像かな?

327:デフォルトの名無しさん
17/07/09 07:39:05.73 nT4jFya6.net
>>321
関数引数の型推論もカリー化もパイプライン演算子も
全部持ってるHaskellがゴミクソだったから、
それらは言語の生産性にとって特に重要じゃないって事だよ

328:デフォルトの名無しさん
17/07/09 09:40:04.24 15PsL+fn.net
括弧を省略しないカリー化はゴミクソだし
中置演算子を使わないのと括弧を省略しないのはLispとJavaの伝統じゃないか

329:デフォルトの名無しさん
17/07/09 09:45:29.15 zwxu6ZoN.net
なんだかんだカリー化は微妙だと思うなあ
部分適用の文法はClojureとかMathematicaがいい感じ
パイプライン演算子はLL的に使うときは便利やね

330:デフォルトの名無しさん
17/07/10 01:34:13.11 VQ9sifwz.net
>>322
HaskellがクソなのはDynamicBindingが言語的に駄目扱いされてる点だぞ
あとstatic初期化にunsafePerformIOが必要な点もクソ
デフォルトで静的型なカリー化とかあったほうが明らかに使いやすいだろ知ったか野郎

331:デフォルトの名無しさん
17/07/10 11:47:13.63 oyNYkVXL.net
そんなものは言語オタクが喜ぶだけで生産性と何の関係もない

332:デフォルトの名無しさん
17/07/10 12:33:52.51 NQXPB1lU.net
生産性(低産階級労働者にも扱えること)

333:デフォルトの名無しさん
17/07/10 17:50:59.58 LYSrTSKk.net
Rustが実用言語になったぞ
DockerをオラクルがRustで実装した

334:デフォルトの名無しさん
17/07/10 20:00:12.08 d0flA58w.net
お、おう・・・

335:デフォルトの名無しさん
17/07/10 20:04:51.52 LYSrTSKk.net
実用言語になったらもう次世代言語じゃないからこのスレとはお別れだな
じゃあな

336:デフォルトの名無しさん
17/07/10 21:04:24.59 Fha/eGoH.net
すげえ論理でワロタ

337:デフォルトの名無しさん
17/07/10 21:59:47.07 2kp3NGJ8.net
建物は完成した時点から崩壊が始まるのでわざと未完成の部分を残しておくとかいう話を思い出した。

338:デフォルトの名無しさん
17/07/11 11:36:48.66 5tKo2E+W.net
そもそもオラクルって時点でお察しだが、
業界ゴロのモジカスとOSSゴロのオラクルは相性が良かったんだろうな

339:デフォルトの名無しさん
17/07/11 15:49:53.62 Fwj1YTm5.net
>>332
誰がどう見ても未完成なら意見が対立しないからね
完成したら、一部の(自称)察しのいい奴が、まだ完成してないと主張し対立が始まる

340:デフォルトの名無しさん
17/07/11 17:23:33.46 9uLf2kf9.net
>>333
マルポ
スレリンク(tech板:262番)

341:デフォルトの名無しさん
17/07/11 18:53:45.21 dSS1j36W.net
[][Tebla][]
}
000-"Yob*RtStrike"[%Kil\]MO,fla>%$9999VLTS
001-GYORLith"0\R"/"ESUBA"%$%
HADO-"EM","L","O","NU"###END

342:デフォルトの名無しさん
17/07/12 22:48:51.57 mlvPRLpa.net
実用言語になってないのが条件なら
Smalltalkも入れてくれよ

343:デフォルトの名無しさん
17/07/12 23:51:46.66 k6H5UqbS.net
Smalltalkは実用されてるだろ
スタートアップ界の異端児!産業機器 x IT x SmalltalkのSORABITO株式会社…人材採用のプロ・高野秀敏氏が厳選「いま最も旬なベンチャー」
URLリンク(thepedia.co)

344:デフォルトの名無しさん
17/07/13 00:48:32.99 ZEMYQbKR.net
一生実用言語にならないような言語は次世代とは呼ばねえだろ池沼かガイジ豆腐で撲殺するぞ

345:デフォルトの名無しさん
17/07/13 00:52:26.73 6ivxTFOR.net
21世紀に生まれた言語限定でええやろ!

346:デフォルトの名無しさん
17/07/13 01:37:14.59 GmrDZ9ks.net
オブジェクト指向というだけで最低限の実用性はあるから純粋な世界に引きこもる
関数型は引きこもるとやばいから外に出る

347:デフォルトの名無しさん
17/07/13 07:10:16.60 uexVWLm1.net
純粋OOPLより純粋FPLの方がいろんな意味で引きこもっとるわ
Smalltalkのシンボルがなんで「気球」なのか、知らんのか?
URLリンク(lists.squeakfoundation.org)

348:デフォルトの名無しさん
17/07/13 07:22:43.74 ZgBNlC8f.net
Smalltalkの引きこもり方は物理的っていうかなんというか
imageの世界に引きこもってるせいで外の世界で新しいツールとか流行ってても使えないし

349:デフォルトの名無しさん
17/07/13 07:29:54.34 uexVWLm1.net
>>340
20世紀生まれとかバカにしてるけどな
Traitsなんて言語機能は10年とちょっと前
21世紀になってからSmalltalkで考案されたのを
新しい言語がこぞってありがたがって使ってんだぞ
Scalaに至ってはただのMixinをかっこいいからってTraitって名前つけちゃったくらいなんだぞ

350:デフォルトの名無しさん
17/07/13 07:40:18.24 m3hQX1bI.net
>>343
いつの時代のSmalltalkの知識で止まっているんだよ
Pharo作ってる and/or 使っている人たちの話でも聞いて錆び付いたイメージをアップデートしてみたら?

351:デフォルトの名無しさん
17/07/13 11:47:59.75 LjH88DBT.net
intはオブジェクトにしない方がいい
他にもプロセスidとかファイルディスクリプタとかURI
オブジェクトの本体ではないものが必要
副作用が必要なのと同じ

352:デフォルトの名無しさん
17/07/13 13:19:58.91 equsxY/V.net
>>344
バカにしてないけど、次世代言語スレとしては21世紀生まれの子たちに絞ってええやろ
起源がなんであれそれを子どもたちが引き継いでるわけなんやし

353:デフォルトの名無しさん
17/07/13 13:28:33.65 xX1L5EAL.net
haskell(1990)

354:デフォルトの名無しさん
17/07/13 13:36:01.36 zQhEdRBN.net
よっしゃ!haskell離脱おめ!!

355:デフォルトの名無しさん
17/07/13 14:12:19.77 wYgqTfnm.net
>>347
そんなことが言いたいのではない

356:デフォルトの名無しさん
17/07/13 15:05:49.91 0lD2vgRh.net
haskellというゴミが消えてくれるならなんでもいい

357:デフォルトの名無しさん
17/07/13 15:14:48.65 /C8bZ6+r.net
そういえばOcamlになったのって案外新しく(1996)てびっくりした
もちろんCamlさらにMLからの流れだけど

358:デフォルトの名無しさん
17/07/13 19:08:43.36 1nRnB/qa.net
昔2chのこの手のスレで、Smalltalkerがgitについて全くトンチンカンなコメントを連発してたので
Smalltalkは錆びついてなくてもSmalltalkerは錆びついてると思う

359:デフォルトの名無しさん
17/07/13 19:42:54.12 DmZAJA0R.net
>>353
なんかあったな
gitなんて業務じゃつかいもんになんねー、svnさいつよみたいなやつな

360:デフォルトの名無しさん
17/07/13 19:53:58.91 0/kHeJlt.net
それ文脈ぜんぜん違う話だしねつ造やめれっていうか錆び付いているのはアンチの脳ミソと記憶力
百歩譲ってそういう話だったとしても最近出没してる「おいら」がHaskellの典型的ユーザーちゃうのと同レベルの話だがや

361:デフォルトの名無しさん
17/07/13 20:21:10.35 LjH88DBT.net
オブジェクトっぽくないものの語尾にerをつけて無理やりオブジェクトにする現象

362:デフォルトの名無しさん
17/07/13 20:57:33.19 10yx+996.net
>>354
なんかsmalltalkにある独自vcsもどきがsvn程度の機能しかないのか知らんが
発想が完全にsvnだったよな

363:デフォルトの名無しさん
17/07/13 21:26:25.99 uexVWLm1.net
>>357
そのvcsもどきっていうのは80年代から組み込みの古典的ChaneSetのことか?
Gitと同時期に開発されたMonticelloがsvn程度ってことはさすがにないと思うんだが

364:デフォルトの名無しさん
17/07/13 21:44:41.50 XbAGpGn+.net
Manager

365:デフォルトの名無しさん
17/07/13 21:45:38.59 10yx+996.net
なんだ、やっぱり独自vcsは劣っててダメだから、ちゃんとgitに乗っかろうって動きあるんじゃん
他の言語ならフツーに出来てることに必死だなって感じだけど
URLリンク(www.slideshare.net)

366:デフォルトの名無しさん
17/07/14 01:48:02.98 07oaelZE.net
>>344
有り難がるどころか、まともにtraitsなんて採用してるのphpとperlくらいだぞ
smalltalkerだけが凄いと思ってるどうでも良い機能だぞ

367:デフォルトの名無しさん
17/07/14 05:30:08.87 vxW3z/6K.net
>>360
へー、すごいねー。
普通の言語では、その言語で作ったアプリケーションの実行中にgitの複数のレポジトリから自己更新してきたり、実行時に構成を動的に変更したりが、とっくの昔からフツーにできているんだー?
さすが普通の言語ってすごいね。そこにシビレルね。

368:デフォルトの名無しさん
17/07/14 06:42:12.81 4JOJgkL6.net
そういうことをやりたいならJavaScriptに乗っかるのが普通だ
SmalltalkやJVMは普通になれなかった

369:デフォルトの名無しさん
17/07/14 07:09:16.72 iN4cnX21.net
>>361
じゃあなんでわざわざTraitsなんて名前つけてんの?ぷぷぷ


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch