スレタイ以外の言語もok
前スレ
次世代言語14 Elixir Crystal Julia Rust Swift
https://itest.5ch.net/mevius/test/read.cgi/tech/1536668904
次世代言語15 Go Rust Swift Kotlin TypeScript
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2018/11/04(日) 20:30:10.42ID:OF8fjEC1628デフォルトの名無しさん
2019/03/27(水) 17:04:40.79ID:ioHKDgtI >>602
先にジェネリクスがあったらオーバーロードは不採用だったと思う
先にジェネリクスがあったらオーバーロードは不採用だったと思う
629デフォルトの名無しさん
2019/03/27(水) 17:15:00.98ID:TdLaeqVz >>627
あと一回見かけたらはてブロに通報するわ
あと一回見かけたらはてブロに通報するわ
630デフォルトの名無しさん
2019/03/27(水) 17:15:08.52ID:SZ6CWUW7 ジェネリックで必ず同じ操作になるならいいけど
そうでもないときはジェネリックではどうにもできない
そうでもないときはジェネリックではどうにもできない
631デフォルトの名無しさん
2019/03/27(水) 17:18:22.78ID:SZ6CWUW7 オーバーロード否定派は動的型付け言語か形無し言語がメインの人なんだろうか?
632デフォルトの名無しさん
2019/03/27(水) 18:22:56.09ID:L8U/qf4n Cはユーザーが定義できない演算子だけオーバーロードする
ユーザーが定義してない型の情報だけコンパイル後に残る
このユーザー定義型の不当な制限をなくすというC++の理念のおかげで
オーバーロードや実行時型情報ができた
めでたしめでたし
ユーザーが定義してない型の情報だけコンパイル後に残る
このユーザー定義型の不当な制限をなくすというC++の理念のおかげで
オーバーロードや実行時型情報ができた
めでたしめでたし
633デフォルトの名無しさん
2019/03/27(水) 19:26:19.13ID:0edTBLWO ほとんどの言語が強制キャストできるのが原因で型安全でなくなっているのが
何とかならない
何とかならない
634デフォルトの名無しさん
2019/03/27(水) 19:52:11.21ID:DpIgan7F >>631
静的型付けメインにも普通に居るよ
RustやGoも関数オーバーロードを導入しなかったし
作為的な例にはなるけどむしろ型システムの阻害要因になることもある
https://ideone.com/uJ1lyb
https://ideone.com/P96nVa
静的型付けメインにも普通に居るよ
RustやGoも関数オーバーロードを導入しなかったし
作為的な例にはなるけどむしろ型システムの阻害要因になることもある
https://ideone.com/uJ1lyb
https://ideone.com/P96nVa
635デフォルトの名無しさん
2019/03/27(水) 19:59:52.56ID:DpIgan7F 後者の例で言うと、ライブラリの関数に気を利かせてオーバーロードを追加したところ
別のプロジェクトの既存コードがコンパイル出来なくなったとかもあり得る
別のプロジェクトの既存コードがコンパイル出来なくなったとかもあり得る
636デフォルトの名無しさん
2019/03/27(水) 20:08:46.35ID:kkhErUOi やはりリーナスは正しかった!
c最高!
c++はうんこ!
c最高!
c++はうんこ!
637デフォルトの名無しさん
2019/03/27(水) 20:12:19.93ID:KDFmmUkx 暗黙の型変換を含めた場合のオーバーロードの地獄感は半端ない。
638デフォルトの名無しさん
2019/03/27(水) 21:04:39.85ID:ZMj2RB3N それにテンプレートとADLが絡んでカオス
639デフォルトの名無しさん
2019/03/30(土) 03:45:54.68ID:x88rhneO クロスキャストはカスだから滅びろ
インターフェースの実装を鞍替えしたいんだったらFactoryとか使えや
インターフェースの実装を鞍替えしたいんだったらFactoryとか使えや
640デフォルトの名無しさん
2019/03/30(土) 10:52:42.58ID:PY6ZYblo 型名を隠蔽すればキャストできないので
無名クラスとラムダの世界ランクが右肩上がり
無名クラスとラムダの世界ランクが右肩上がり
641デフォルトの名無しさん
2019/03/30(土) 13:35:24.87ID:wGFGqWwF 本当に欲しいのは型ではなく制約
642デフォルトの名無しさん
2019/03/30(土) 19:28:46.42ID:grSCIEfK ガイジみたいなコード書くガイジを殺していい法律を作ることだな
皆殺しにしてやるよ
皆殺しにしてやるよ
643デフォルトの名無しさん
2019/03/31(日) 08:00:06.83ID:S4Tb/ZFO 次世代かは知らんけど、Haskell奥が深い。
プログラマーのための圏論っていうのをネットから落として読んでるが、
圏論的には変数や値そのものも関数足り得るとか、読んでて面白い(理解してるかは怪しいが)
int n = 1とint n(){ return 1 }が同じと言うのは言い得て妙だなと。
Haskellで関数にカッコ使わないのはこれを体現する為なんだなと。
n = 1 ― Haskell的には変数でもあり、引数無しの関数。
関数も値でもあるんだから
sum = foldl (+) 0は、sum xs = foldl (+) 0 xsの部分適用で変数を(見かけ上)減らした関数であると同時に、
部分適用した関数に束縛した変数でもある。。。と。
と言うことはHaskellのmain関数も、関数であり変数なんだなーと。
関数を呼んでプログラムが走り出すとも言えるし、変数を評価しようとして、結果として束縛されたプログラムが走り出すとも言える。
main = putStrLn "hello" ― main関数を呼ばれたとも言えるし、変数mainを評価して値(IO ())を得る過程でプログラムが走り出すとも言える。
プログラマーのための圏論っていうのをネットから落として読んでるが、
圏論的には変数や値そのものも関数足り得るとか、読んでて面白い(理解してるかは怪しいが)
int n = 1とint n(){ return 1 }が同じと言うのは言い得て妙だなと。
Haskellで関数にカッコ使わないのはこれを体現する為なんだなと。
n = 1 ― Haskell的には変数でもあり、引数無しの関数。
関数も値でもあるんだから
sum = foldl (+) 0は、sum xs = foldl (+) 0 xsの部分適用で変数を(見かけ上)減らした関数であると同時に、
部分適用した関数に束縛した変数でもある。。。と。
と言うことはHaskellのmain関数も、関数であり変数なんだなーと。
関数を呼んでプログラムが走り出すとも言えるし、変数を評価しようとして、結果として束縛されたプログラムが走り出すとも言える。
main = putStrLn "hello" ― main関数を呼ばれたとも言えるし、変数mainを評価して値(IO ())を得る過程でプログラムが走り出すとも言える。
644デフォルトの名無しさん
2019/03/31(日) 10:38:58.10ID:UUJRkrO5 概念は有用だし言語の進化に多大な影響を与えたけど
道具としてのHaskellは今の位置から上がってくることは無いだろうな
道具としてのHaskellは今の位置から上がってくることは無いだろうな
645デフォルトの名無しさん
2019/03/31(日) 10:43:21.70ID:KUHIQC/W >>644 確かにその通り。 実用的な言語は、わかりやすくバグが出にくいことが重要。
他人のコードでも誰が見ても一目でわかるみたいな。
他人のコードでも誰が見ても一目でわかるみたいな。
646デフォルトの名無しさん
2019/03/31(日) 11:07:42.57ID:s7MuzANU 実用なら副作用認めた方が絶対的に有利なわけでそういうのはOCamlなりF#が担えばいいよ
Haskellが勉強のための言語なのはこの先もかわらない
Haskellが勉強のための言語なのはこの先もかわらない
647デフォルトの名無しさん
2019/03/31(日) 13:08:06.82ID:88fzeBO9 xmonadとかあるし、実用的でないとは言い切れないが、いかんせん学習コストが高くてマンパワーに頼れんからな
648デフォルトの名無しさん
2019/03/31(日) 18:14:52.08ID:hIxqKKME Haskellの再発明のようなアイデアを思いつくやつは必ず出てくるよ
これHaskellでやったやつだって教えてあげないと再発明を止められない
高い学習コストをもう一回課金される
これHaskellでやったやつだって教えてあげないと再発明を止められない
高い学習コストをもう一回課金される
649デフォルトの名無しさん
2019/03/31(日) 19:22:10.57ID:m+UFTh7s Haskellは数学的な背景があるから一部だけパクってもうまくいかんでしょ
650デフォルトの名無しさん
2019/03/31(日) 20:26:01.36ID:hIxqKKME 一部だけ学ぶのはダメってのは見覚えがある
Perlでやったやつだ
一部だけでいいと作者が言ってるのに全部やろうとして挫折するやつだ
Perlでやったやつだ
一部だけでいいと作者が言ってるのに全部やろうとして挫折するやつだ
651デフォルトの名無しさん
2019/03/31(日) 20:40:52.20ID:1YONhXIR https://speakerdeck.com/uzulla/gui-tutekita-ping-cheng-zui-hou-falseoreorehuremuwakufalsezuo-rifang
なんでペチパーって自作FW作りたがるん?
もうしばらく関わってないけど、糞SIerいたとき糞案件が軒並み自社製PHP FW(糞)だったの思い出したわ
なんでペチパーって自作FW作りたがるん?
もうしばらく関わってないけど、糞SIerいたとき糞案件が軒並み自社製PHP FW(糞)だったの思い出したわ
652デフォルトの名無しさん
2019/03/31(日) 21:26:26.85ID:fpw7uUAj 量産型Webは技術が完全に硬直化してるから、ちょっと意識高い奴がマウント取りたくても差別化できるネタが少ないんだよ
で既存の開発プロセスのオーバーエンジニアリングに向かうわけだけど、
ペチパーレベルではインフラや言語を改善したりそもそも開発作業自体を減らすって方向には行きにくい
そこで手頃なのがFWというわけ
で既存の開発プロセスのオーバーエンジニアリングに向かうわけだけど、
ペチパーレベルではインフラや言語を改善したりそもそも開発作業自体を減らすって方向には行きにくい
そこで手頃なのがFWというわけ
653デフォルトの名無しさん
2019/03/31(日) 21:52:14.80ID:rPARd9Mh もともとFWっていうのは汚いコードを寄せ集めてライブラリ化した上で
汚いコードの寄せ集めを使う処理を手順化して綺麗に見せるための仕組みだったんだけどな
汚いコードの寄せ集めを使う処理を手順化して綺麗に見せるための仕組みだったんだけどな
654デフォルトの名無しさん
2019/03/31(日) 21:59:57.35ID:hQIJpK9h diコンテナは何のメリットがあるのか不明
655デフォルトの名無しさん
2019/03/31(日) 22:31:08.06ID:BrkeBPe8 >>654
は?
は?
656デフォルトの名無しさん
2019/03/31(日) 22:37:11.66ID:hQIJpK9h 依存性注入はクラスが増えてカオスになる
何故かjavaではよく使われるのが謎
何故かjavaではよく使われるのが謎
657デフォルトの名無しさん
2019/03/31(日) 22:49:56.27ID:fbfMx+RF オブジェクト指向だとクラスは大量に作るもんだぞ
658デフォルトの名無しさん
2019/03/31(日) 22:58:47.59ID:vireAt4B それLaravel使えば問題ない話じゃね?
659デフォルトの名無しさん
2019/03/31(日) 22:59:24.74ID:vireAt4B アンカ抜けてた>>651
660デフォルトの名無しさん
2019/03/31(日) 23:08:51.93ID:rPARd9Mh カオスだと感じる脳程度だけしか持ち得てないんだろう
察してやれよ
察してやれよ
661デフォルトの名無しさん
2019/03/31(日) 23:49:26.60ID:qnazkb5e FXの自動売買ツールを無料で配布しています。
http://hbgvf.blog.jp
http://hbgvf.blog.jp
662デフォルトの名無しさん
2019/04/01(月) 00:33:10.08ID:dYyCWZhX 人類最底辺の脳みそしか持ち合わせてない永遠の土方ペチプァの話題なんか出すな
スレが穢れる
スレが穢れる
663デフォルトの名無しさん
2019/04/01(月) 01:55:20.15ID://wZRuJn664デフォルトの名無しさん
2019/04/01(月) 02:44:37.39ID:PICzK0N0665デフォルトの名無しさん
2019/04/01(月) 02:48:36.94ID:PICzK0N0 逆に Python はなんとなく幼い頃の悪ガキ仲間と似てるなと思ってたら、立派に成長して懐の深い大人になってた。
ちょっと見の見た目で判断してはいけない。
ちょっと見の見た目で判断してはいけない。
666デフォルトの名無しさん
2019/04/01(月) 07:12:14.06ID:dYyCWZhX 単純に機械学習ライブラリの虎の威借りてるだけだろ
言語としてはPHP並の糞だわ
venv周りも糞糞アンド糞だしな
言語としてはPHP並の糞だわ
venv周りも糞糞アンド糞だしな
667デフォルトの名無しさん
2019/04/01(月) 20:13:46.91ID:5Qv5OJbI そのへん、他の軽量級言語は何故うまくやれなかったのかな。
668デフォルトの名無しさん
2019/04/01(月) 20:23:06.27ID:no59bRT+ 情報系専門でない連中が多い分野だから、言語オナニーには興味ないんだよ
Pythonは昔から数値計算系のライブラリが充実してたし学習コストも低い
Pythonは昔から数値計算系のライブラリが充実してたし学習コストも低い
669デフォルトの名無しさん
2019/04/01(月) 21:00:27.10ID:oZ4uWA1m venvなぁ。
中にpython.exeがそのまんま入ってたのを見たときはコントかと思ったw
中にpython.exeがそのまんま入ってたのを見たときはコントかと思ったw
670デフォルトの名無しさん
2019/04/01(月) 21:18:09.61ID:dOhRlOJ8 数学の関数やOSのシステムコールを
いちいちオブジェクト指向に翻訳しないといけない文化は仕様が不安定になる
不安定な自作オブジェクトを集めたものが自作FWになる
いちいちオブジェクト指向に翻訳しないといけない文化は仕様が不安定になる
不安定な自作オブジェクトを集めたものが自作FWになる
671デフォルトの名無しさん
2019/04/01(月) 21:52:46.65ID:I/9Vex97 pyenvとかあの辺弄るくらいならdockerで閉じ込めた方がマシ。
672デフォルトの名無しさん
2019/04/02(火) 09:42:15.53ID:exqjvsIl >>670
翻訳しないで済むOS作れば良いのでは?
翻訳しないで済むOS作れば良いのでは?
673デフォルトの名無しさん
2019/04/02(火) 20:30:27.35ID:JAcM/MrS WinRTがそれかな
674デフォルトの名無しさん
2019/04/03(水) 11:55:08.65ID:eJ7jSanC >>671
venvに比べたら、docker重いよ。
venvに比べたら、docker重いよ。
675デフォルトの名無しさん
2019/04/03(水) 12:10:05.50ID:nFtQHhqP676デフォルトの名無しさん
2019/04/03(水) 13:11:27.32ID:GUjlsyjt dockerがどっかー行っちゃったー
すまん。一度言ってみたかったんだ。ゆるせ。
すまん。一度言ってみたかったんだ。ゆるせ。
677デフォルトの名無しさん
2019/04/03(水) 13:47:18.98ID:ZdmGYXWn 実際には一人で気持ち良くなるのではなく
staticおじさんを責める自分に酔ってるみたいなパターンが多い
一人じゃないから正常なんて思ったら大間違い
staticおじさんを責める自分に酔ってるみたいなパターンが多い
一人じゃないから正常なんて思ったら大間違い
678デフォルトの名無しさん
2019/04/03(水) 13:50:02.32ID:/cw++oNj パンツじゃないから恥ずかしくないなんて思ったら大間違い
679デフォルトの名無しさん
2019/04/03(水) 21:33:59.24ID:x59pa14S staticおじさんてなに?
680デフォルトの名無しさん
2019/04/04(木) 02:32:05.58ID:dJc2ae+t681デフォルトの名無しさん
2019/04/04(木) 05:09:05.51ID:fR1MFQa7682デフォルトの名無しさん
2019/04/04(木) 05:48:32.02ID:Bp6OcKFp 特殊用途以外でstatic変数を使うのはアホだけど
staticメソッドもまとめてstaticおじさんとか書いてる記事は
関数型にもついてけないただの周回遅れ
staticメソッドもまとめてstaticおじさんとか書いてる記事は
関数型にもついてけないただの周回遅れ
683デフォルトの名無しさん
2019/04/04(木) 07:07:10.33ID:vFGtgSry うちのおじさんはdbのクライアントをstaticにするんだよね
684デフォルトの名無しさん
2019/04/04(木) 08:14:30.23ID:O0tv1R/2 シングルトンおじさんの呼び方のが正しい問題意識な感じがする。
685デフォルトの名無しさん
2019/04/04(木) 08:44:10.37ID:t2REljhQ ここのstaticおじさんの話題で関数型を持ち出してる人間たまに居る(多分同一人物)けどimmutableに一切言及してないのはなんなんだ
関数型は言語機能で束縛をimmutableにして、それでもなお必要な時にmutableを扱うのであって、staticおじさんのpublic staticなんて言語も踏まえてmutableの可能性の方が高いでしょ
関数型は言語機能で束縛をimmutableにして、それでもなお必要な時にmutableを扱うのであって、staticおじさんのpublic staticなんて言語も踏まえてmutableの可能性の方が高いでしょ
686デフォルトの名無しさん
2019/04/04(木) 09:23:20.89ID:NLHdu954 Kotlin もよろしく
687デフォルトの名無しさん
2019/04/04(木) 09:29:42.90ID:vFGtgSry コトリンなんてシングルトンおじさん量産言語じゃん
688デフォルトの名無しさん
2019/04/04(木) 09:30:46.16ID:MhhM4cG2 static禁止の次の世代はimmutableではなく依存性注入だからね
class名をハードコードするだけでアウト
interfaceはセーフ
もちろんSingletonはアウト
class名をハードコードするだけでアウト
interfaceはセーフ
もちろんSingletonはアウト
689デフォルトの名無しさん
2019/04/04(木) 09:33:41.65ID:l5IgkZnr Love≒依存性
690デフォルトの名無しさん
2019/04/04(木) 10:37:11.62ID:NLHdu954 >>687
え?そうなるか?
え?そうなるか?
691デフォルトの名無しさん
2019/04/04(木) 10:59:33.23ID:no/JRFUK class名.static変数
class名.static関数
超便利じゃん
class名.static関数
超便利じゃん
692デフォルトの名無しさん
2019/04/04(木) 11:25:51.28ID:MhhM4cG2 class名がそのままファイル名になるじゃん
定義を変えてみたくなったらファイルを上書きするしかないじゃん
そういうとこだよ
定義を変えてみたくなったらファイルを上書きするしかないじゃん
そういうとこだよ
693デフォルトの名無しさん
2019/04/04(木) 11:31:19.04ID:Bp6OcKFp694デフォルトの名無しさん
2019/04/04(木) 12:40:50.62ID:no/JRFUK695デフォルトの名無しさん
2019/04/04(木) 14:01:55.30ID:t2REljhQ696デフォルトの名無しさん
2019/04/04(木) 21:07:18.41ID:zCERpG8r staticメソッド:
副作用無し
↑これにめちゃくちゃ違和感がある
特定の言語は宋なのかもしれないけど…
副作用無し
↑これにめちゃくちゃ違和感がある
特定の言語は宋なのかもしれないけど…
697デフォルトの名無しさん
2019/04/04(木) 21:24:47.26ID:g//GkyZ8 同じ機能を持った別個体のオブジェクト変数を持ちたい時にフィールドをstaticにしてたら何も出来ないけどね
698デフォルトの名無しさん
2019/04/04(木) 22:06:34.27ID:Bp6OcKFp >>696
どういう違和感か分からないが一応補足しておくと
staticメソッドのうち、副作用無しの場合 という意味な
副作用が無いメソッドというのは
引数以外に影響されず、戻り値以外に影響を与えないもの
具体例としては java.lang.Math.max
どういう違和感か分からないが一応補足しておくと
staticメソッドのうち、副作用無しの場合 という意味な
副作用が無いメソッドというのは
引数以外に影響されず、戻り値以外に影響を与えないもの
具体例としては java.lang.Math.max
699デフォルトの名無しさん
2019/04/04(木) 22:39:36.52ID:bWgxb2Xi700デフォルトの名無しさん
2019/04/04(木) 23:09:47.59ID:ELt56IMR 副作用の定義によっては
参照透過と同義になってしまうかも?
参照透過と同義になってしまうかも?
701デフォルトの名無しさん
2019/04/04(木) 23:20:58.18ID:qij6PJCK 定義によってはって、「副作用」の意味を変えちゃうってこと?
702デフォルトの名無しさん
2019/04/04(木) 23:34:18.16ID:Bp6OcKFp703デフォルトの名無しさん
2019/04/05(金) 20:17:32.71ID:p2nz2EB6 副作用とは関数使ったら値を返すだけじゃなくて他のとこに影響出てしまうやつ
わかりやすい例で言えばファイル操作(write,read)関数とか画面に文字を出す関数(print)が
副作用があるとされている
わかりやすい例で言えばファイル操作(write,read)関数とか画面に文字を出す関数(print)が
副作用があるとされている
704デフォルトの名無しさん
2019/04/05(金) 22:40:10.47ID:nOvsDaXU 先生! ユーザー入力や乱数は副作用に入りますか?
705デフォルトの名無しさん
2019/04/05(金) 23:31:16.26ID:OJKC59P7 入ります。
706デフォルトの名無しさん
2019/04/05(金) 23:36:46.00ID:OJKC59P7 そう言う意味じゃHaskellはHaskell信者?は副作用は無いと言い張るが、確実に有る。
私がHaskellに注目してるのは副作用があっても参照透明性が保たれている。この一点だ。
私がHaskellに注目してるのは副作用があっても参照透明性が保たれている。この一点だ。
707デフォルトの名無しさん
2019/04/05(金) 23:56:50.87ID:lYJMaqmI ブログやニュース記事ならhaskellだろうけど
ソフトウェアを書けといわれたらocamlで書くわ
ソフトウェアを書けといわれたらocamlで書くわ
708デフォルトの名無しさん
2019/04/06(土) 00:31:00.91ID:fOYiDoB+ 副作用があるのかないのかを型で宣言すればいいんだよ
副作用は無いと言い張るより、型は嘘をつかないと言い張る方が面白くなる
副作用は無いと言い張るより、型は嘘をつかないと言い張る方が面白くなる
709デフォルトの名無しさん
2019/04/06(土) 00:31:05.44ID:tSYMD8Eq710デフォルトの名無しさん
2019/04/06(土) 01:24:43.24ID:fOYiDoB+ モナドは外見上は引数がないけど値を返す
逆に引数はあるけど値を返さないとか、引数もない値も返さないとかの方が
副作用に関してはわかりやすいのだけどモナドの意義は副作用だけではないので
逆に引数はあるけど値を返さないとか、引数もない値も返さないとかの方が
副作用に関してはわかりやすいのだけどモナドの意義は副作用だけではないので
711デフォルトの名無しさん
2019/04/06(土) 01:40:05.33ID:/WRt9p3o モナドとかクソしょうもない型合わせごっこの遊び道具でしかない。
712デフォルトの名無しさん
2019/04/06(土) 01:43:50.36ID:yyDZS6P1 関数型コミュニティのモナドをディスっちゃいけない空気嫌い
技巧に溺れて本来の関数型のメリットである見通しの良さや宣言性を完全に見失ってる
技巧に溺れて本来の関数型のメリットである見通しの良さや宣言性を完全に見失ってる
713デフォルトの名無しさん
2019/04/06(土) 01:44:02.26ID:eNhmVT4m トレートとインターフェースの違いは何なんだ?rust難しすぎ
714デフォルトの名無しさん
2019/04/06(土) 02:56:29.83ID:Rn9Ldrv+ JavaとかC#のインターフェイスと似たようなもんだけど、後付じゃないジェネリクスと階層構造の無い型のおかげでむしろ使いやすい
OOPのインターフェイスの方がルール覚えづらいと思う。<? extends T>と<? super T>とかinとかoutとかもう覚えてないわ
OOPのインターフェイスの方がルール覚えづらいと思う。<? extends T>と<? super T>とかinとかoutとかもう覚えてないわ
715デフォルトの名無しさん
2019/04/06(土) 08:23:20.81ID:LfoN0yho >>709
そのトリックに拘って純粋関数型言語と言う言葉に拘ってたら、
そこから話が進まなくなる場面を何度も見てきたから。
純粋じゃない言語から見れば「それもう副作用じゃん」「ただの方便じゃん」と。
だから私はHaskell使って何が嬉しいか聞かれたら、
参照透明性を保つことを徹底する所と答える。
そのトリックに拘って純粋関数型言語と言う言葉に拘ってたら、
そこから話が進まなくなる場面を何度も見てきたから。
純粋じゃない言語から見れば「それもう副作用じゃん」「ただの方便じゃん」と。
だから私はHaskell使って何が嬉しいか聞かれたら、
参照透明性を保つことを徹底する所と答える。
716デフォルトの名無しさん
2019/04/06(土) 08:33:11.58ID:/WRt9p3o rustはc++に比べると一見学習コストは低いようにも見えるが
色々な機能の意義を理解するには結局c++やることになるという意味でc++以上に学習コストがかかる。
色々な機能の意義を理解するには結局c++やることになるという意味でc++以上に学習コストがかかる。
717デフォルトの名無しさん
2019/04/06(土) 08:37:35.86ID:LfoN0yho >>710
?
モナドは常に引数あるよ。
doでしか使った事ないのかな。。。
main = do
print (1 + 1)
print (2 + 2)
は
main = print (1 + 1) >> print (2 + 2)
のdo表記だし、(>>)は
main = print (1 + 1) >>= \_ -> print (2 + 2)
の(>>= \_ ->)部分の略記。(print (1 + 1)の戻り値IO()からIOを外した()がラムダ式の引数に入るが使わない)
?
モナドは常に引数あるよ。
doでしか使った事ないのかな。。。
main = do
print (1 + 1)
print (2 + 2)
は
main = print (1 + 1) >> print (2 + 2)
のdo表記だし、(>>)は
main = print (1 + 1) >>= \_ -> print (2 + 2)
の(>>= \_ ->)部分の略記。(print (1 + 1)の戻り値IO()からIOを外した()がラムダ式の引数に入るが使わない)
718デフォルトの名無しさん
2019/04/06(土) 08:37:59.39ID:LXikOU7p719デフォルトの名無しさん
2019/04/06(土) 08:43:32.56ID:LfoN0yho >>712
そうなん?
Haskell信者は兎も角、OCamlとかLisp系とか他の言語の人もそんな空気なん?
まあモナドをディスる理由も無い気はするが。
見通しの良さや宣言性も見失ってると思わないので、参考までに聞きたい。
そうなん?
Haskell信者は兎も角、OCamlとかLisp系とか他の言語の人もそんな空気なん?
まあモナドをディスる理由も無い気はするが。
見通しの良さや宣言性も見失ってると思わないので、参考までに聞きたい。
720デフォルトの名無しさん
2019/04/06(土) 08:48:46.26ID:/WRt9p3o そんなクソみたいなものでIOの実行を表現するくらいなら実行タスクのチェーンを作ってますって
意味をもっと明示的に取り扱った方がマシだわ。
意味をもっと明示的に取り扱った方がマシだわ。
721デフォルトの名無しさん
2019/04/06(土) 08:56:14.69ID:fOYiDoB+722デフォルトの名無しさん
2019/04/06(土) 09:10:31.05ID:LfoN0yho >>721
モナドと言ったら>>=とかの演算子の方だと思ったんだが、IOな関数(アクション)の方なの?
それなら、getLineみたいなアクションは圏論的にはある種の変数扱い。
n = 1 ― 圏論では変数であり、引数無しの関数
値も、Haskellでは出来ないが強いて書いてみると
1 = 1 ― 1という名前の変数(値は1)、もしくは1という名前の1を返す引数無しの関数
そう考えると
getLine ― 外部からの入力(IOな値)が入った変数、もしくは(ry
>>711 の言う通り、型がIOなだけで、何も特別な関数というわけじゃ無い。
少なくともHaskellから見た扱いは純粋な関数と変わらない。
(それにも関わらず、main表層にアクションが自然と集まるというだけ)
モナドと言ったら>>=とかの演算子の方だと思ったんだが、IOな関数(アクション)の方なの?
それなら、getLineみたいなアクションは圏論的にはある種の変数扱い。
n = 1 ― 圏論では変数であり、引数無しの関数
値も、Haskellでは出来ないが強いて書いてみると
1 = 1 ― 1という名前の変数(値は1)、もしくは1という名前の1を返す引数無しの関数
そう考えると
getLine ― 外部からの入力(IOな値)が入った変数、もしくは(ry
>>711 の言う通り、型がIOなだけで、何も特別な関数というわけじゃ無い。
少なくともHaskellから見た扱いは純粋な関数と変わらない。
(それにも関わらず、main表層にアクションが自然と集まるというだけ)
723デフォルトの名無しさん
2019/04/06(土) 09:13:29.66ID:LXikOU7p 以下は個別に分けられる話
(1) 純粋関数型ではそれ自体の制限からIOにモナドなどを必要とする
(2) Haskellでは実行タスクのセマンティクスを明示しやすくするためdo構文がある
(3) モナドの有用性はIOの表現用に限らない (他言語にも関連する)
>>720
それは(2)を考慮してもなお(1)に納得してないということ?
より良い方法があるんだろうか?
それ以前の、純粋関数型は要らないということかもしれないけど
(1) 純粋関数型ではそれ自体の制限からIOにモナドなどを必要とする
(2) Haskellでは実行タスクのセマンティクスを明示しやすくするためdo構文がある
(3) モナドの有用性はIOの表現用に限らない (他言語にも関連する)
>>720
それは(2)を考慮してもなお(1)に納得してないということ?
より良い方法があるんだろうか?
それ以前の、純粋関数型は要らないということかもしれないけど
724デフォルトの名無しさん
2019/04/06(土) 09:17:48.36ID:LXikOU7p >>722
その文脈のモナドは、それらを持つ型あるいは値では
その文脈のモナドは、それらを持つ型あるいは値では
725デフォルトの名無しさん
2019/04/06(土) 09:55:46.82ID:umTWflC6 これだから関数型の連中はいやなんだよ
726デフォルトの名無しさん
2019/04/06(土) 10:04:05.89ID:fOYiDoB+ Rust「静的型はいいぞ」
Haskell「静的型はいいぞ」
迷探偵「これだから関数型は」
Haskell「静的型はいいぞ」
迷探偵「これだから関数型は」
727デフォルトの名無しさん
2019/04/06(土) 12:47:15.25ID:TkGMaDeW Innullableな世界で仕事がしたい
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- アメリカ、入国時に「日本人を含む外国人観光客の最大5年分のSNS履歴の提出」義務化 過去10年間に使用のメールアドレスや電話番号等も [Hitzeschleier★]
- 【おこめ】「有能だったんじゃ」おこめ券で批判殺到の鈴木農水大臣…ネットでは前任の“進次郎再評価” [ぐれ★]
- 【中国外務省】日本への渡航自粛を再度呼びかけ 今度は「地震発生」を理由に [ぐれ★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★3 [Hitzeschleier★]
- 【芸能】デパートで見つけたランドセルが衝撃価格! つまみ枝豆「どこかで規制しないと」に共感の声殺到 「全て同感」「高すぎます」★2 [冬月記者★]
- 【速報】年収の壁の自民案判明、26年は168万円 [蚤の市★]
- 日本人、世界で最もブランドに興味なし🇯🇵 [462275543]
- ハローワークってなんであんなにアホみたいに話が長いんだ?
- 【悲報】鈴木農水大臣、国民から「こいつひょっとしてアホなんじゃね?」と思われ始めてしまうwww [793117252]
- 【悲報】たぬかなが渡邊渚を壮絶バッシング 「グラビア出したあたりから臭いな~と思ってたが激臭になってたわ。中居は悪くない」 [455031798]
- あれ?か、花粉来てね?
- 日本に旅行来てる中国人減ったとか言ったの誰だよ
