関数型プログラミングと純粋関数型プログラミング言語に関する意見まとめ
@ababupdownba 私としては、そもそも関数型言語に対して何か主張を行うほど理解がないことを自覚しているので、疑問に対してお答え頂けるのはただただ感謝しかありませんし、マサカリとも思いません。 ただ、関数型言語に関して浅い理解で主張を行い、その指摘に対してレスバが発生する現象を比較的よく見るなと。
2021-12-06 16:24:13@sonken625 > 僕自身は関数型ちゃんとやってみようってなったので これ、cats effectなんかはbetter Futureぐらいに扱ったほうが健全だと思います(^ν^) あとkoskaの業務Scala記事読みたいです♥(気が向いたら、で全然大丈夫ですが.) 会話に割り込んですみません
2021-12-06 16:55:27こんな仕様、何が嬉しいの?って多くの人が思うような言語がモダンな言語というイメージ。出始めのころのオブジェクト指向言語とかバッカスがACMチューリング賞記念講演で講演したころの関数型言語とか
2021-12-06 16:56:45FFI i oは"副作用がある関数"と思えるものの型。例えばputchar :: FFI Char () IOを実行するには、FFI i oをi型の値で"呼び出して"(当然これは純粋なプログラム内では禁止しておく)、帰ってきたoを継続o->rに渡す・・・という"関数"を(∀i o. FFI i o -> i -> (o -> r) -> r)として渡す。
2021-12-06 17:13:20この分類からすると多分F#は不純関数型言語ということになると思うんですが、不純なものにはそれなりに魅力がありますからねぇ…(つい先日@Olivia_0707さんから「不純喫茶」なるものの存在を教えて頂きました🥰) というわけでF#も面白いですよ、皆さんも使いましょう。(自分は使ってないのに…😇) twitter.com/mod_poppo/stat…
2021-12-06 17:35:33純粋関数型言語というとどうしてもHaskellが槍玉に上がって遅延評価!モナド!IO型!みたいな抱き合わせになってしまいがちなので、PureScriptとかElmとかLazy Kとかの他の純粋関数型言語がもっと流行って欲しい
2021-12-06 12:27:12圏論最高、モナド最高。参照透明でない関数型言語は邪悪。nullも邪悪。許すまじ。みたいになっていってOCamlやSMLは不純で邪悪。Scalaでもnullを使うやつは邪悪。みたいになると怖いってなるw 最近はそういう人はあまりいないと思うけどな。
2021-12-06 17:49:39関数型言語うんぬんの話、面白いエピソードがあります。うちのコード書ける学生さんがScalaコミュニティが怖いのでScalaは近づきたくないとか言ってて... Linuxのころもそんな話があった気がするけど、普及期にはコミュニティの心理的安全性は大切な気はしますよね。
2021-12-06 20:49:13まあでも一部関数型プログラミング言語でよく出てくるモナドとかいう仕組み、なんか判らん!ってなったりする人多いからモナドに関する記事あんなに量産された、というのはある。 ブーム去ったのか最近は全然見ない気がするけど、単に自分が Qiita 読まなくなっただけかも。
2021-12-06 22:53:17@narnarna9999 札幌 関数型ミートアップ(Functional Sapporo Meetup)等で知り合った外国人の中にはHaskellでプログラ書くのを仕事にしてる人もいましたけど、確かに全体からすると少数派かもしれませんね。ただ、Twitterのタイムラインを見ていても間違いなく国内にもいることはいます。 functional-sapporo.connpass.com
2021-12-06 23:00:49>関数型プログラミング言語を使う人の多くが実用性ではなく数学的な美しさを求めるからだと私は思っています ちなみに、その当人の私は純粋関数型言語であるElmを現実の受託開発のプロダクトで使い、一般向けのウェブサービスとしてリリースし現在も運用してますので、ご理解をよろしくお願い奉り候 twitter.com/zacky1972/stat…
2021-12-06 23:04:16「学術的な正確さがないと相手にされない」という気持ちは,理解できます。それは関数型プログラミング言語を使う人の多くが実用性ではなく数学的な美しさを求めるからだと私は思っています。それが特性なんだろうなというのが,私の正直かつ残念な気持ちです。(炎上するかも) twitter.com/cactaceae/stat…
2021-12-06 14:29:13誰も指摘していないのでここだけ指摘するとGHCは完全にAOTコンパイラであって(NCGやLLVMの場合を考える、サードパーティのプロジェクトなどは今回考えない) これはよくある誤解 スレッド追った限りだと純粋関数型言語は難しいという結論から理屈を出しているようにしか思えない… twitter.com/cactaceae/stat…
2021-12-06 23:30:04@cubbit2 いままで合成してきた関数が逐次実行プログラムに展開されたように見えます。 大規模アプリケーションでインタープリター?も書きたくないですね。。。 Haskellは難しいんですね。
2021-12-05 01:05:51「純粋関数型言語だとTypeで副作用が示されるし一部の抜け道を除いて型でチェックされるよ」って主張に対して、純粋関数がIOの束縛を外れてIOからデータを取得出来るという誤った理解を正そうとしてないようにしか見えなかった… 触れば分かるのになあ
2021-12-06 23:51:44なんか純粋関数型言語がどうのこうのというやりとりを拾い読みしたけど、一方的に難癖つけてくる人に対して関数型言語推し側が意図を聞こうとしたり丁寧に説明していたのに、最終的には「課題感を理解してもらえなかった。あの界隈は過激派が多い」みたいな言われ方していて不憫だった。
2021-12-07 00:08:00OCamlはO外しても純粋関数型ではないと思う(副作用減らせるけど型で範囲を限定したりはしない) twitter.com/saba1024/statu…
2021-12-07 00:27:10Oの部分に純粋関数型っぽくない部分あったっけと思ったけどval mutableとかあるか(try〜withとかrefとかあるからそれ以前にというのはそう
2021-12-07 00:32:22あの人、Haskellのような純粋関数型言語でコード書いたこと無いから、「大規模」なプロジェクトでは全部の関数が副作用付きになるからIOの区別の意味が無いと思い込んでるんだと思った 実際は実用的アプリケーションでもかなりの部分を純粋関数に出来るし、副作用付きになっても引数が純粋なのは嬉しい
2021-12-07 01:45:24元々CubbitさんはHaskellよりPureScriptの人だし、純粋関数型言語をHaskellの意味では使ってないし、元より「副作用に型が付いて言語が剥がしてないかチェックしてくれると嬉しいよね」って話をしてただけなのに「Haskellは純粋じゃない」とか難癖付けてるようにしか見えなくてかなり気分が悪い
2021-12-07 02:04:20参照透過性があると少なくともテストは書きやすくなるし、自分にとっては読みやすくもなるので、関数型プログラミング的なアプローチは良いよなと思っている。 そちらを採択せず、手続き型のアプローチを積極的に取り入れようとしたことは今までないかも…🤔 ja.m.wikipedia.org/wiki/%E5%8F%82…
2021-12-07 02:43:10@ncaq Haskellやってないんですが、ほぼ同等の機能があると言われているZIOはやっているので、Haskell固有の機能は抜きにして純粋関数型プログラミングについて会話できるかと思っていたんですができませんでした。 今回Haskellについて色々教えてもらっのでHaskellもちゃんとやってみようと思ってます。
2021-12-07 08:18:45