- 1 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 23:11:51.54 ID:gS2Jpksn.net]
- スレタイ以外の言語もok
前スレ 次世代言語17 Go Rust Kotlin TypeScript Julia https://mevius.5ch.net/test/read.cgi/tech/1567602619/
- 671 名前:デフォルトの名無しさん mailto:sage [2019/10/16(水) 21:49:26.79 ID:S+gc310a.net]
- てか普通にrustコードのリンク貼り付けても信者でさえまともに読んでねーし。
マジ糞すぎだわ。
- 672 名前: mailto:sage [2019/10/16(Wed) 22:10:09 ID:EFbyShwN.net]
- 見るからに極端な持論を展開するためのリンク貼ってる面倒くさそうなヤツをこんな場所でまともに扱ってもなんの利益もないからな
真面目に批判したいなら技術ブログでも作ってどうぞ
- 673 名前: mailto:sage [2019/10/16(Wed) 23:03:53 ID:wV6uQsrK.net]
- 人の話を聞かない読まない自由があった方が、表現の自由を尊重するコストは安い
もし必ず読む義務があったら、見たくない表現を規制したくなるだろ
- 674 名前:デフォルトの名無しさん [2019/10/16(Wed) 23:04:29 ID:y6qNWGwM.net]
- SIerで一番使われているのはPHPです。
- 675 名前: mailto:sage [2019/10/16(Wed) 23:36:52 ID:nFLG/E/d.net]
- >>660
NECが富士通通すってこと?
- 676 名前: mailto:sage [2019/10/16(Wed) 23:43:00 ID:QJqyol2e.net]
- >>660
前職はクレジットカード決済ができなくてAWSの支払いに商社通してたわw
- 677 名前: mailto:sage [2019/10/17(Thu) 00:00:40 ID:iX75WJzt.net]
- >>665
今調べたらNECもやってる上に富士通より若干安くて草
- 678 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 00:13:44.55 ID:wphaTNNp.net]
- SIerってAWS使えませんってところ多いよな
環境すら用意してない 時代遅れすぎて滅んでくれって思う
- 679 名前: mailto:sage [2019/10/17(Thu) 02:01:34 ID:wp/FZ+Ir.net]
- >>619
保守エンジニアの確保コストが高くなりすぎた時も追加で
- 680 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 05:23:56.33 ID:HOKNblsN.net]
- お前らが崇めてる大手の自社開発企業に4年勤めてたけど正直暇だったぞ
「完成」してるものを無理やり機能追加して仕事を作るのが苦痛だったわ Twitterとかがよく改悪するけどエンジニアの仕事を作るために仕方なくやってることだから許してやってほしい 受託でも何でもいいから新規開発じゃないとつまらんわ
- 681 名前:デフォルトの名無しさん [2019/10/17(Thu) 05:33:17 ID:pXVpPvmd.net]
- そりゃ新規のほうが簡単だからな
難しいことが嫌いならディスプレイのドットでも数えてたら
- 682 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 06:10:07.55 ID:HOKNblsN.net]
- >>671
いや面白くないって話なんだが……😅
- 683 名前:デフォルトの名無しさん [2019/10/17(Thu) 06:44:40 ID:pXVpPvmd.net]
- うん、気持ちはよく分かるよ
- 684 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 07:14:58.24 ID:mB2FKAkA.net]
- 他人のパソコンの中身丸々すげかえるのは楽しいですか
ずっと音声収集するプログラム立ち上げとくのは楽しいですか
- 685 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 08:08:47.59 ID:2eO6sXeX.net]
- >>674
何ならWebカメラも録画してますが
- 686 名前: mailto:sage [2019/10/17(Thu) 08:15:17 ID:1mHvnb1C.net]
- 上司「いつも見ているぞ」
- 687 名前: mailto:sage [2019/10/17(Thu) 11:01:43 ID:8K7F5Z6G.net]
- 自社開発ってどうせ具にもつかんホームページ作ってるか
半年そこらで畳むゲームつくってるかのどっちかだろ そんなおもちゃじゃない、社会で役立つソフトをつくってるのはいつだって お前らがバカにしてるSIerだ そして社会で役立つものをつくる現場にRustやScalaなんてものは使われていない
- 688 名前: mailto:sage [2019/10/17(Thu) 11:02:51 ID:CgHIbj6d.net]
- ぼく自主開発ってWindowsみたいなの想像してた
- 689 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 11:27:28.21 ID:gkC5kwXM.net]
- ScalaとかHaskellあたりとRustを並べる時点でセンスがないからな
ScalaとJavaだったらJavaの方が楽に覚えられるが 屋上屋で誰も全貌を把握できない混沌と化してる上にコンパイラのサポートが弱いC++よりはRustの方が習熟は速い
- 690 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 11:57:19.91 ID:eKaVzozI.net]
- 机上の空論だけは達者な遊び人が持て囃してるが
実際のものづくりに役に立ってないって点で同じなんだよなあそれらの言語 そこで同じな以上、細かく見て違いがどうこういう必要もない だから違いがあるとか言ってる時点でお前は遊び人だってことがバレてるのよ
- 691 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 11:59:19.89 ID:eKaVzozI.net]
- そういう意味でGoとかKotlinはセンスがいい
遊び人が遊びたくなる要素は徹底的に排除したうえで 生産性向上に全ツッパしてるんだから
- 692 名前: mailto:sage [2019/10/17(Thu) 12:23:59 ID:68ixsJzy.net]
- >>677
社会で役に立つシステム()って誰にでも作れる簡単なCRUDのことか?w このスレはそんな低レベルなものから卒業した人が集まる場所なんだが?
- 693 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 12:36:12.89 ID:1mHvnb1C.net]
- 自分も土方のくせに俺はお前らとは違うと思い込んでいる痛い土方のスレだろ
- 694 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 12:38:30.95 ID:gkC5kwXM.net]
- >>680
尼がRust使ってるからもうRustの世話になってない人間なんかほとんどいない きわめて狭い領域、少数の人間しか使わないコピペ駆動開発のCRUDアプリよりよほどものづくりに役に立ってるゾ
- 695 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 12:39:16.04 ID:Jfpt/owr.net]
- 崇高な意識の持ち主なんだろな
- 696 名前: mailto:sage [2019/10/17(Thu) 12:43:29 ID:gkC5kwXM.net]
- RustはC++から「遊び人が遊びたくなる要素」を排除して作られた言語だし、
マジでC++もRustも1ミリも知らないでもの話してそうだなコイツ
- 697 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 12:46:04.07 ID:tq7j3RVK.net]
- 「SIerの現場で使われてないから実際のものづくりに役に立ってない」という主張の非論理性
- 698 名前: mailto:sage [2019/10/17(Thu) 13:05:26 ID:gr44XWYW.net]
- >>681
Kotlinはそうでもないだろ C#系を真似し終えてからは思いつきで機能追加しまくってて評判も
- 699 名前:悪くて完全にScalaコースだよ []
- [ここ壊れてます]
- 700 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 13:15:39.16 ID:/ob/p1R9.net]
- SIerはAWSより役に立ってるから……(震え声)
- 701 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 14:19:06.42 ID:Ys76mmeP.net]
- 次世代言語スレなのだから、いま流行ってるかとか役に立ってるかとかではなく、今後そうなるか(なれるか)を話した方が建設的でないか?
- 702 名前: mailto:sage [2019/10/17(Thu) 14:34:17 ID:sVtFG3vf.net]
- 知見のある奴はこんな掃き溜めに来ないから無理だよ
建設的な事よりマウント取ることに全力を尽くしたい
- 703 名前: mailto:sage [2019/10/17(Thu) 14:43:02 ID:1mHvnb1C.net]
- そもそもここ次世代言語アンチスレだから
- 704 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 14:55:51.58 ID:cOv47nM3.net]
- Kotlinそんなに評判悪いん?
- 705 名前: mailto:sage [2019/10/17(Thu) 15:20:37 ID:NR0+h1BR.net]
- Kotlin は Coroutine 以外は地味で渋めな機能拡張しかしてなくね?
C#系を真似したというのも意味がよくわからんが
- 706 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 15:52:25.80 ID:+k9ttGJ/.net]
- 遊び人のから排除したプログラミング言語ってビャーネストロヴストルップの功績馬鹿にしてるだろ
- 707 名前: mailto:sage [2019/10/17(Thu) 16:07:38 ID:By3PPjzz.net]
- ここは言語スレだけど、Kotlinは標準のクラスライブラリをもっとリッチにしてくれないと。マルチプラットホーム目指すなら特に。
俺のなかじゃ評価するとき、言語+標準のクラスライブラリのセットで考える
- 708 名前: mailto:sage [2019/10/17(Thu) 16:11:39 ID:By3PPjzz.net]
- null safetyだって、kotlinでjava apiとか呼ぶ機会多すぎてせっかくのnull safetyが...
kotlin nativeとかあるがクラスライブリが貧弱なのは寄生言語の限界か?
- 709 名前: mailto:sage [2019/10/17(Thu) 17:05:52 ID:NZF3csTv.net]
- 初期KotlinがJava標準ライブラリの存在を前提に作られていて
マルチプラットフォーム仕様が後付けなのでライブラリが貧弱
- 710 名前: mailto:sage [2019/10/17(Thu) 17:17:41 ID:NR0+h1BR.net]
- Java 側にアノテーションついていれば、Kotlin の null safety に反映される
Android SDK はアノテーションつきまくりだから、役に立ってる
- 711 名前: mailto:sage [2019/10/17(Thu) 18:07:16 ID:LBezDrpM.net]
- >>686
遊びたくなる要素満載だろ。てかドヤりたくなる要素満載。 ただそれだけ。
- 712 名前: mailto:sage [2019/10/17(Thu) 18:11:11 ID:1mHvnb1C.net]
- 従来からのセオリーに反して新しい言語に手を出す時点で遊びでありドヤである
- 713 名前: mailto:sage [2019/10/17(Thu) 18:16:27 ID:gkC5kwXM.net]
- >>700
おま中
- 714 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 18:36:29.14 ID:NZF3csTv.net]
- 言語設計者本人の著書とか読むと意図や道理が分かるけど
やる奴はそういうの関係無しに何でも遊び道具にする
- 715 名前:デフォルトの名無しさん [2019/10/17(木) 19:03:11.49 ID:yPX5iNuE.net]
- KotlinさえできればJavaなんか覚えなくてもいい
↓ ↑ Java覚えないとKotlinできることにならない
- 716 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 19:24:50.33 ID:/CJVMYnO.net]
- Rustに遊ぶ余地がないとは言わんが、C++の遊ぶ余地と比べたら屁でもないよ
- 717 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 19:25:38.94 ID:RH5BHlmk.net]
- >>700
満載とまで言うのなら教えて欲しい Rustでドヤれる要素なんてあるかなぁ? 質素で面白みのない言語だと思うけど パターンマッチも貧相だしねえ
- 718 名前: mailto:sage [2019/10/17(Thu) 19:43:37 ID:/CJVMYnO.net]
- >>706
「トーシロにはコンパイル通せないだろうなあ、俺には通せるけどね(どや顔 )」な奴は見たことある 普通に無能だったが
- 719 名前:デフォルトの名無しさん [2019/10/17(Thu) 19:47:25 ID:UjGHV1nI.net]
- と無能。
- 720 名前: mailto:sage [2019/10/17(Thu) 19:47:37 ID:1HaWomNm.net]
- AWSでRustサポート開始
https://news.mynavi.jp/article/20191016-910489/
- 721 名前: mailto:sage [2019/10/17(Thu) 19:50:07 ID:Lb/VWL6h.net]
- >>709
違う ソース読めばわかるが、「AWSでRustがサポートされる」のではなく、「AWSがRustを支援することにした」だ
- 722 名前:デフォルトの名無しさん [2019/10/17(Thu) 19:54:13 ID:taho93zc.net]
- この世のC言語/C++のライブラリが全て
- 723 名前:Rustで書き直されてLinuxもRustで書き直されたら天下取れるのになあ
夢物語だけど [] - [ここ壊れてます]
- 724 名前: mailto:sage [2019/10/17(Thu) 20:05:14 ID:mB2FKAkA.net]
- さすがに本気出したC++には速度で負ける模様
- 725 名前:デフォルトの名無しさん [2019/10/17(Thu) 20:11:27 ID:UjGHV1nI.net]
- LinuxはCだが?C++の本気とかちゃんちゃらおかしい。
- 726 名前: mailto:sage [2019/10/17(Thu) 20:36:42 ID:1mHvnb1C.net]
- ほんとお前らみたいな馬鹿ってC++が嫌いだよなw
- 727 名前: mailto:sage [2019/10/17(Thu) 20:39:51 ID:+k9ttGJ/.net]
- 今更、Rustに書き直すとか馬鹿だろ
- 728 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 22:34:30.43 ID:LVoG2HXB.net]
- こないだ出たsudoのしょーもないバグも「整数値-1を無効値として扱う」みたいなんじゃなくちゃんと「無効を表す値」が存在する最近の言語ならそもそも回避できたのにな
今普通に動いてる既存の物ってのはそれだけで強いよなぁ
- 729 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 23:40:54.35 ID:LBezDrpM.net]
- >>716
バカはおまえだ。 内部的には何らかのビット列をわりあてることになるんだよ。 その選び方は性能にはっきり影響する。
- 730 名前:デフォルトの名無しさん mailto:sage [2019/10/17(木) 23:52:32.65 ID:JsyCjuj5.net]
- 型さえあれば救われたのに
- 731 名前:デフォルトの名無しさん mailto:sage [2019/10/18(金) 00:01:46.17 ID:jb1wNmPP.net]
- 老害イラッイラで草
- 732 名前:デフォルトの名無しさん mailto:sage [2019/10/18(金) 00:15:16.52 ID:YKg3bugE.net]
- 型ゆえに人は苦しまねばならぬ
型ゆえに人は悲しまねばならぬ こんなに苦しいのなら こんなに悲しいのなら 型などいらぬ!!!
- 733 名前:デフォルトの名無しさん mailto:sage [2019/10/18(金) 00:24:55.92 ID:vLu077dK.net]
- >>720
はいランタイムエラー
- 734 名前: mailto:sage [2019/10/18(Fri) 00:47:51 ID:B/ouUg1P.net]
- 人はそれを脆弱性と呼ぶ
- 735 名前: mailto:sage [2019/10/18(Fri) 00:56:05 ID:4X7KT/ZF.net]
- やはりRustの時代か
- 736 名前:デフォルトの名無しさん mailto:sage [2019/10/18(金) 04:11:17.15 ID:hSszLl+1.net]
- >>711
全て書き換えるのは夢物語だが、 Linuxを書き換えるくらいならおまい個人でもできるだろ 頑張れ!
- 737 名前: mailto:sage [2019/10/18(Fri) 04:18:44 ID:zx2NxSRO.net]
- 大学か大学院に入り直したい
同じことの繰り返しに飽きた
- 738 名前:デフォルトの名無しさん mailto:sage [2019/10/18(金) 04:38:32.95 ID:5559SrY6.net]
- 起業すれば
- 739 名前: mailto:sage [2019/10/18(Fri) 10:25:44 ID:nBQ7bEKe.net]
- >>710
なるほど チャイナマネーぶちこんで、Rustでビルドしたプログラムには 自動的にバックドアが仕込まれるか 勝手に情報を中国政府所有のサーバに送りつけるかするってことか
- 740 名前:デフォルトの名無しさん mailto:sage [2019/10/18(金) 11:06:47.57 ID:8rWpCRm0.net]
- 糖質も見てます
- 741 名前:デフォルトの名無しさん mailto:sage [2019/10/18(金) 15:36:43.09 ID:qpQdHQHW.net]
- モナドの使い方がお前らには見えていないのを見たぞ
これ半分アルミホイルだろ
- 742 名前:デフォルトの名無しさん mailto:sage [2019/10/18(金) 20:30:58.03 ID:LI8e8Xij.net]
- 雑なの承知で書くけど
null safeやリストへのmap/flatMapの便利さが何となく分かったなら モナド大体分かったということでOK
- 743 名前:デフォルトの名無しさん mailto:sage [2019/10/18(金) 21:16:13.30 ID:V/rb7rbM.net]
- IOモナドはどう理解すればいいの?
- 744 名前:デフォルトの名無しさん mailto:sage [2019/10/18(金) 21:55:39.27 ID:1uLeEMt/.net]
- >>73
mapはわかるがflatmapはわからんな
- 745 名前:デフォルトの名無しさん [2019/10/18(金) 21:58:53.77 ID:Jaff414t.net]
- mapの良さは分かるけどモナドが理解できた勢に加わりたくない
- 746 名前:デフォルトの名無しさん mailto:sage [2019/10/18(金) 22:06:39.93 ID:4X7KT/ZF.net]
- あれLispのとどうちがうんだ
- 747 名前:デフォルトの名無しさん mailto:sage [2019/10/18(金) 23:00:00.81 ID:uhy/qlU/.net]
- JSのflatMapはmapと違って配列自身を返せるから
次のメソッドチェーンの処理をより柔軟にできるぐらいしか使い所がない気がする
- 748 名前:デフォルトの名無しさん mailto:sage [2019/10/18(金) 23:00:56.75 ID:liCy40EB.net]
- バカはどんな言語実装になろうと決して他人のコード読まんのだよ。
だから言語を変えれば解決するとか馬鹿の妄想なのだ。
- 749 名前:デフォルトの名無しさん mailto:sage [2019/10/18(金) 23:04:17.96 ID:liCy40EB.net]
- >>731,732
- 750 名前:どっちも型合わせ以上の意味はない。 []
- [ここ壊れてます]
- 751 名前:デフォルトの名無しさん mailto:sage [2019/10/18(金) 23:45:28.18 ID:lmpJOwiE.net]
- 関数のcomposability(合成可能性)を高めるために
モノイド、ファンクタ、モナドなんかの型クラスがある モノイド = appendable ファンクタ = mappable モナド = flatmappable ↓この説明が過去見た中では一番わかりやすい adit.io/posts/2013-04-17-functors,_applicatives,_and_monads_in_pictures.html
- 752 名前:デフォルトの名無しさん mailto:sage [2019/10/18(金) 23:47:21.40 ID:LI8e8Xij.net]
- >>731
理解しなくてOK 純粋関数型を好きになる日がもし来たらそのとき大体の先を考えよう
- 753 名前:デフォルトの名無しさん mailto:sage [2019/10/18(金) 23:56:52.67 ID:LI8e8Xij.net]
- 物事には順序があって、順序の基には段階や必要性があるわけで
つまり初手ラスボス配置はよくない
- 754 名前:デフォルトの名無しさん mailto:sage [2019/10/19(土) 00:23:04.53 ID:nhl9y3vZ.net]
- >>738
そういう説明はだいたい理解した最後に頭の整理するために読むものなんだよ わかってない人に無意味
- 755 名前:デフォルトの名無しさん mailto:sage [2019/10/19(土) 00:30:41.62 ID:nhl9y3vZ.net]
- >>731
worldを隠したいという動機があってそれをうまく実現する体系がモナド こういうふうに問題解決のストーリーで理解していくとわかる 合成可能性とかはその結果なので最初は忘れていい
- 756 名前:デフォルトの名無しさん mailto:sage [2019/10/19(土) 01:08:13.73 ID:VwkXsBh7.net]
- >>651
Android開発というキラーアプリがあるし InteliJのインテリセンスがマジ優秀やし
- 757 名前:デフォルトの名無しさん mailto:sage [2019/10/19(土) 01:34:27.34 ID:IO8pKqwE.net]
- >>738
サンキュー Haskell には Maybe というものがあるぐらいしか知らんので、 もやもやーってしか理解してなかったけど大体分かった (使ってみろと言われてもすぐにはできないだろうけど) 苦労してゆっくり英語とコード読んだ後、最後尾に日本語訳へのリンクあって草
- 758 名前:デフォルトの名無しさん mailto:sage [2019/10/19(土) 02:02:29.47 ID:nZE9Kj9C.net]
- >>743
Java は Android なんか無い頃から SIer 御用達だったんや 開発環境はだいたい Eclips
- 759 名前:デフォルトの名無しさん mailto:sage [2019/10/19(土) 02:03:53.22 ID:nZE9Kj9C.net]
- flatMap の初歩的な使い方といえばこれ
map が返すのは適用する関数が成功したも結果もエラーの結果も全部入った配列になるけど、flatMap なら適用する関数が成功した結果だけが入った配列を返すようにできる その場合の flatMap で適用する関数は、成功時には結果が一個入った配列を、エラー時には要素0個の配列を返すようにする
- 760 名前:デフォルトの名無しさん [2019/10/19(Sat) 07:27:33 ID:seQh7iKV.net]
- それってfilterでやればよくね?
つーかモナドモンスターは成仏してくれ
- 761 名前:デフォルトの名無しさん mailto:sage [2019/10/19(土) 07:39:01.77 ID:UzQZhlPI.net]
- 他の方法挙げたら切りが無いと思うけど
for文で駄目なわけじゃないし 少し読みやすい(慣れによる)、少し短い、少し速い とか 道具の使い分けなんてそんなもん
- 762 名前:デフォルトの名無しさん [2019/10/19(土) 07:47:59.52 ID:seQh7iKV.net]
- そんなもんて言うけどその少しが大事だろ
- 763 名前:デフォルトの名無しさん [2019/10/19(土) 08:01:53.19 ID:zsc0MtR6.net]
- いくつかの言語が備えている例外機構の真逆の仕組みがモナドよな
- 764 名前:デフォルトの名無しさん mailto:sage [2019/10/19(土) 08:34:08.79 ID:UzQZhlPI.net]
- >>749
「〜でよくね」はその少しを気しない(使い分けない)方の表現では?
- 765 名前:デフォルトの名無しさん mailto:sage [2019/10/19(土) 08:58:11.03 ID:7c9LDTMs.net]
- flatmapがモナドとか言ってる奴何一つ型を分かってない
flatmapはモナドのbindを拡張した概念であって、bindそのものじゃない 要するにflatmapが使える時点でモナドじゃない、モナドのような何かだ それをモナドと混同してる時点で論外
- 766 名前:
そいつの話を聞く必要はない [] - [ここ壊れてます]
- 767 名前: mailto:sage [2019/10/19(Sat) 09:36:17 ID:g/FUkYaY.net]
- >要するにflatmapが使える時点でモナドじゃない、モナドのような何かだ
自分がなにもわかってないっていう自己紹介かな 「モナドとして振る舞える」ものはモナドだよ モナドよりできることが多かったとしても
- 768 名前:デフォルトの名無しさん mailto:sage [2019/10/19(土) 10:16:08.33 ID:QmPBAH4r.net]
- モナド警察現るw
モナド = bindableでもいいけどbindって何?ってなるだろ flatmapはmapの続きで理解できるからbindって言葉よりも理解しやすい Optional<T>を例にすると mapはOptional<T> -> ( T -> U ) -> Optional<U> Optional<T>とTをUに変換する関数を受け取ってOptional<U>を返す flatmapはOptional<T> -> ( T -> Optional<U> ) -> Optional<U> Optional<T>とTをOptional<U>に変換する関数を受け取ってOptional<U>を返す mapの場合、受け取る関数が( T -> Optional<U> )だと結果がOptional<Optional<U>>になって二重に包まれる flatmapはこういう二重に包まれた結果にならないようmapする機能とネストした型をflattenする機能が合体したもの IOやStateには当てはまらないとかいう奴も居るけど mapだとIO<IO<T>>になるところをflattenしてIO<T>にするのは同じ flattenするルールが包みの種類によって違うだけ
- 769 名前:デフォルトの名無しさん mailto:sage [2019/10/19(土) 10:28:11.66 ID:qf1Nei7K.net]
- まあこうなるからモナドを再利用するより再発明した方が話が早い
過去の発明と「混同」すべきでないと警察に指摘されても何も問題ない また俺なんか新発明しちゃいましたか? それだけの話
- 770 名前:デフォルトの名無しさん mailto:sage [2019/10/19(土) 10:33:43.56 ID:UzQZhlPI.net]
- 序盤中盤 >>730
ラストダンジョン >>752-754
- 771 名前:デフォルトの名無しさん mailto:sage [2019/10/19(土) 10:46:34.37 ID:QmPBAH4r.net]
- flatmapは何がうれしいのかというと
例えば 1. ファイルを開いて 2. 内容をテキストとして読んで 3. パースしてJSONに変換する とした場合、 3つとも何らかの要因でエラーが発生しうるから それぞれ結果がエラーが発生するかもしれないというコンテキスト(EitherとかResultと呼ばれるもの)で包まれる open: FilePath -> Result<File, Error> read: File -> Result<Text, Error> parse: Text -> Result<Json, Error> でそれらの処理をつなげた場合に3重に包まれた結果じゃなく 最終的なflattenされたResult<Json, Error>を返すようにするために使うのがflatmap mapはコンテキストを引き継ぎながら中身に関数を適用する flatmapはそれに加えてコンテキストがネストしないようflattenしてくれる それによって合成できる関数のパターンが増えてシンプルに処理を書けるようになる というのが俺の理解
|

|