- 1 名前:デフォルトの名無しさん mailto:sage [2012/08/16(木) 22:17:50.32 .net]
- 339 返信:153[sage] 投稿日:2012/08/16(木) 22:16:29.83
>>314 >関数型言語でなければならないという観点は間違ってる気がする ああ、これについては同感だね 現状のどの関数型言語も文字列、パターン、ハッシュの操作に難があるから、 現行LLであるPerl/Python/Rubyを置き換えるには無理があると思う ただし、関数型言語にも良い特性がある訳で、実際に(LLを含む)多くの言語に影響を与えている だから自分は「LLにおける関数型プログラミング」に注目している
- 63 名前:デフォルトの名無しさん mailto:sage [2012/08/19(日) 00:58:41.44 .net]
- Pythonの命名規則の定着具合はRubyやPerlみたいなウンコ言語より遥かにマシだからLLと言って一緒くたにすんなよ
- 64 名前:デフォルトの名無しさん mailto:sage [2012/08/19(日) 01:03:40.72 .net]
- >>63
例えばどのような命名規則でしょうか。 このスレはあくまでLLにおける関数型プログラミングの話なので、 関数型プログラミングに関わりそうな部分だけで結構ですので、 いくつか例を挙げていただけないでしょうか。
- 65 名前:デフォルトの名無しさん mailto:sage [2012/08/19(日) 01:07:43.30 .net]
- LLにおける関数型プログラミングの話という認識が間違ってる
Rubyしか知らないのに他のLLを巻き込むなよ
- 66 名前:デフォルトの名無しさん mailto:sage [2012/08/19(日) 11:19:49.03 .net]
- PyhtonでもJavaScriptでも好きなネタを投入すればいいんじゃね?
- 67 名前:デフォルトの名無しさん mailto:sage [2012/08/19(日) 12:09:10.92 .net]
- >>65
スレの趣旨を認めたくないのなら、ここに来ないでほしいのだが。
- 68 名前:デフォルトの名無しさん mailto:sage [2012/08/20(月) 13:20:16.62 .net]
- そして誰もいなくなったw
- 69 名前:デフォルトの名無しさん mailto:sage [2012/08/20(月) 21:08:34.51 .net]
- MLは悪くない言語なんだけど、関数型言語としては二流っていうか
関数型モドキのニセモノに過ぎないから 関数型プログラミングで得られるメリットはLLと然程変わらないね だからMLユーザがしょぼいライブラリしか無いML処理系じゃなく LLで関数型プログラミングやりたい気持ちは分かるよ、うん
- 70 名前:デフォルトの名無しさん mailto:sage [2012/08/20(月) 21:57:51.18 .net]
- Pythonは、あまり過度な関数型プログラミングは推奨してないよ。
- 71 名前:デフォルトの名無しさん [2012/08/20(月) 22:11:34.11 .net]
- 「できる」のに推奨しないのと、「できない」から推奨しないとの間には大きな隔たりがある
楽々「できる」のと、苦労すれば「できないこともない」との間にも大きな隔たりがある
- 72 名前:デフォルトの名無しさん [2012/08/20(月) 22:12:29.17 .net]
- >>69
>MLは悪くない言語なんだけど、関数型言語としては二流っていうか >関数型モドキのニセモノに過ぎないから 小学生の書いた読書感想文?
- 73 名前:デフォルトの名無しさん mailto:sage [2012/08/20(月) 22:19:52.16 .net]
- >>69
関数型言語としては二流である根拠をはっきり述べてくれ。 そして、関数型プログラミングで得られるメリットとは何かも述べてくれ。 もし気力が残っているのなら、そのメリットがMLでは得られないのは、 MLの何に原因があるのかも述べてくれると、大変よろしい。
- 74 名前:デフォルトの名無しさん mailto:sage [2012/08/20(月) 22:21:02.41 .net]
- MLなんてマイナー言語けなされて無視出来ずに反応しちゃうのは
LLスレで暴れてたRuby&関数型マニアのキモイ奴だけだろ
- 75 名前:デフォルトの名無しさん [2012/08/20(月) 22:31:20.32 .net]
- といふことは、MLをけなしているのはLLスレでプライドをズタズタにされたPythonマニア?
- 76 名前:デフォルトの名無しさん mailto:sage [2012/08/20(月) 22:42:51.57 .net]
- LLスレでぼろくそに批判されて、ついにこんな糞スレに追放されておいて
プライドがズタズタになっていない>>28は本当に凄い
- 77 名前:デフォルトの名無しさん [2012/08/20(月) 22:52:41.32 .net]
- 図星だったようだね
- 78 名前:デフォルトの名無しさん mailto:sage [2012/08/20(月) 22:57:09.67 .net]
- MLをゴミだと思う人間がみんなPythonユーザだったら
Pythonはシェア1位を取ってるよ
- 79 名前:デフォルトの名無しさん mailto:sage [2012/08/21(火) 00:36:30.01 .net]
- 根本的に可読性が低くなるから、普通の開発で推奨してる環境なんてないし
関数型プログラミングがやりやすい言語を選ぶなんてこともない C++でもラムダが使える時代だから関数型プログラミング最高!という短絡思考はやめた方がいい むしろ、Ruby以外は常識的判断により関数型からは慎重に距離を置いてる 結果としてRubyだけが関数型言語と同様の馬鹿げた真似をしてドヤ顔してるって感じ 本当にLisper得意の見下しって時代から何も進歩してない まあML&Rubyの人は好きにやれば良いんじゃないかな
- 80 名前:デフォルトの名無しさん mailto:sage [2012/08/21(火) 02:24:04.28 .net]
- >結果としてRubyだけが関数型言語と同様の馬鹿げた真似をしてドヤ顔してるって感じ
例えばどういうRubyコードのこと言ってる?
- 81 名前:デフォルトの名無しさん mailto:sage [2012/08/22(水) 16:21:19.35 .net]
- ML を dis ってる人は、ML の派生も含めてダメだと言ってるの?
- 82 名前:デフォルトの名無しさん mailto:sage [2012/08/22(水) 19:00:02.22 .net]
- OCaml使ってると、Haskellと比較して、基本設計が古くさいなぁ、と思うことはある
- 83 名前:デフォルトの名無しさん [2012/08/23(木) 00:23:13.53 .net]
- ハスケルで組まれたプログラムがスパゲッティすぎてついていけない
- 84 名前:デフォルトの名無しさん mailto:sage [2012/08/23(木) 02:10:44.07 .net]
- 基本Mutableな言語はゴミとまでは言わないが、ゴミだぞ。
- 85 名前:デフォルトの名無しさん mailto:sage [2012/08/23(木) 15:55:51.98 .net]
- こういう破壊的操作使いまくりのコードが
Rubyにおける関数型プログラミングなの? def func n , aa , bb Enumerator.new do | e | a = aa.cycle b = bb.cycle [*[b]*n.-(1),a].cycle { |r| e << r.next } end end
- 86 名前:uy [2012/08/24(金) 05:46:30.28 .net]
- 質問ですチャーチ数の使い道を教えてください
これって 数値ではないわけで チャーチ数のみでゲームをつくっても人間には何がおもしろいのかわからないものができあがりますよね だからチャーチ数をどこかで人間がみて理解できる数値に変換していいんだとおもいますけど それって途中までチャーチ数で演算した意味は?ってきかれるとまだ僕には答えられません つまり最終成果物は十進数の数値なんですが 途中演算をλ計算でやる利点はなんですか? なにがあるんですか?
- 87 名前:uy [2012/08/24(金) 05:49:22.00 .net]
- あれ、もしかして桁が膨大になった場合ってラムダ計算のほうが高速ですか?
なんかそんな気がします 用途があるとすればそこでしょうか
- 88 名前:uy [2012/08/24(金) 06:08:11.75 .net]
- はやくおしえて
これ凄いですね 演算速度がどれだけ桁増えても一定である気がします それであってますか?
- 89 名前:uy [2012/08/24(金) 06:10:55.61 .net]
- ねえ
レスまだ? おそくない? ラムダ計算はこんなに高速だってのにおまえ等は、、 cpu内部にラムダ計算入れるべき
- 90 名前:uY mailto:sage [2012/08/24(金) 14:04:23.57 .net]
- もういいです
自分で理解した ラムダ計算は最速の演算方法だ
- 91 名前:デフォルトの名無しさん mailto:sage [2012/08/24(金) 14:19:30.26 .net]
- 言葉先行のどこにでもいるだたのチンピラ?
- 92 名前:デフォルトの名無しさん mailto:sage [2012/08/25(土) 03:04:49.02 .net]
- は?
- 93 名前:デフォルトの名無しさん mailto:sage [2012/08/28(火) 10:35:52.33 .net]
- Rubyの設計が失敗してるということ。
- 94 名前:デフォルトの名無しさん mailto:sage [2012/08/28(火) 10:49:11.57 .net]
- どこが失敗している?>ruby
- 95 名前:uy [2012/08/28(火) 16:39:35.13 .net]
- 何カ所か盛大にミスってる
nilの扱いと名前空間 けどjavaにくらべたら全然余裕
- 96 名前:デフォルトの名無しさん [2012/09/01(土) 14:32:43.71 .net]
- 【関連サイト: JavaScript編】 -- Pyhton編: >>4, Ruby編: >>55
・JavaScript 第6版 - O'Reilly Japan www.oreilly.co.jp/books/9784873115733/ -- 第5版からの改訂として、節「8.8 関数型プログラミング」が追加された ・Javascriptで学ぶ Functional Programming www.slideshare.net/todorokit/javascript-functional-programming-10170360 ・JavaScriptで始める関数型プログラミング 1-1 - サイバーエージェント公式クリエイターズブログ ameblo.jp/ca-1pixel/entry-11144877522.html ・エレガントな JavaScript を作成するための関数型プログラミングの使用 - IBM dw www.ibm.com/developerworks/jp/web/library/wa-javascript.html ・A Modern Introduction to Programming with JavaScript and jQuery - Open Book Project www.openbookproject.net/books/mi2pwjs/index.html ・JavaScript as a Functional Language www.ajaxprojects.com/ajax/tutorialdetails.php?itemid=557
- 97 名前:デフォルトの名無しさん [2012/09/02(日) 15:39:25.83 .net]
- 死ねwwwwwwwwwwwwwwwwwwカスwwwwwwwwwwww
- 98 名前:28 mailto:sage [2012/09/05(水) 00:28:47.76 .net]
- >>55にある記事の一つを勝手に翻訳してみた
Rubyによる関数型プログラミング -- Functional programming with Ruby ・www.h6.dion.ne.jp/~machan/misc/FPwithRuby.html ・www.h6.dion.ne.jp/~machan/misc/FPwithRuby.epub >>80 >>79のいう「関数型言語と同様の馬鹿げた真似をしてドヤ顔してる」とは、 たとえばこんな記事(および、記事に含まれるコード群)を指しているのだと思われ.....
- 99 名前:デフォルトの名無しさん mailto:sage [2012/12/10(月) 16:00:53.19 .net]
- もうrubyの話とか要らん
- 100 名前:デフォルトの名無しさん mailto:sage [2013/05/04(土) 12:59:24.13 .net]
- add = lambda x, y : x + y
curry = lambda x : lambda y : x + y curry (1)(2) add = lambda x, y, z : x + y + z curry1 = lambda x, y : lambda z : x + y + z curry2 = lambda x : lambda y : lambda z : x + y + z
- 101 名前:28 [2013/06/23(日) 07:15:39.33 .net]
- スレが停滞してるので、新たなネタを投入してみる
そのネタとは「LLによる関数型プログラミングの実践」であり、 ここまでの関数型プログラミングに関する「理屈」を一歩進めてその「実践」に着手してみた まず、最近までRuby初心者スレPart52では「ブログアンテナのデータ管理」を題材にして 手続き型プログラミングスタイルでRubyコードを設計してきた(詳しくは初心者スレの#43等を参照) www.h6.dion.ne.jp/~machan/tmdoc/example/Blog.book/blog.png -- UMLクラス図 www.h6.dion.ne.jp/~machan/tmdoc/example/Blog.book/html-r1.30/ -- 自動生成ドキュメント play.island.ac/codepaste/code?id=1536 このコード、>>54で書いた「末尾感嘆符ルール」に従い破壊的操作を伴うメソッドの末尾には 必ず ! (感嘆符)を付けるようにしていたけど、これを関数型プログラミングスタイルで書き直してみた www.h6.dion.ne.jp/~machan/tmdoc/example/Blog.book/blog-fp.png -- UMLクラス図 www.h6.dion.ne.jp/~machan/tmdoc/example/Blog.book/html-r1.33-fp/ -- 自動生成ドキュメント play.island.ac/codepaste/code?id=1537 見れば分かるように、両者間には全体的なモジュール構造/クラス階層の設計に変更は無く、メソッド定義だけが異なる また、>>59で書いた(垂直方向にシステムを分割する)「階層化アーキテクチャ」に従い、 下位層のPStoreデータベースをアクセスするクラス Store では破壊的操作メソッド update_blog! を定義した一方で、 その上位層では破壊的操作を一切用いない「純粋関数型パラダイム」で設計している ただし純粋関数型と言いつつも一部では破壊的代入を(しかたなく)用いているけど、 操作対象をローカル変数に限定しているので、矛盾や問題には該当しないと思う なお、>>62末尾で書いた施策の一つ「専用の動的型検査メソッド呼び出し」について、 実際に自作のアサーションライブラリ 'assertion.rb' を利用してコードを書いている(例: ASSERT.kind_of ....)
- 102 名前:デフォルトの名無しさん mailto:sage [2013/06/23(日) 08:23:29.20 .net]
- 2ちゃんはもうすっかり人居なくなったな
- 103 名前:デフォルトの名無しさん [2013/06/23(日) 09:13:04.69 .net]
- >>102
みんなどこに行ったん?
- 104 名前:デフォルトの名無しさん mailto:sage [2013/07/14(日) NY:AN:NY.AN .net]
- 大規模規制で半減したつうし、前プロバイダで規制やればあっさり消滅すんでねぇの?w
- 105 名前:デフォルトの名無しさん [2013/09/24(火) 02:46:24.05 .net]
- rubyでcurry化は簡単便利
f=->x,y{2*x + 3*y}.curry g=f[3] puts g[4] #=>18
- 106 名前:デフォルトの名無しさん mailto:sage [2013/09/24(火) 09:11:08.81 .net]
- そのくらいデフォでやれよ
その程度で簡単便利とか超わらえるわ
- 107 名前:デフォルトの名無しさん [2013/10/28(月) 19:56:35.40 .net]
- それで自己参照できるん?
- 108 名前:デフォルトの名無しさん [2014/01/16(木) 13:47:04.51 .net]
- ゴミ
- 109 名前:デフォルトの名無しさん mailto:sage [2014/01/20(月) 01:07:25.28 .net]
- こんな本でた
JavaScriptで学ぶ関数型プログラミング www.amazon.co.jp/dp/4873116600/ なんか面白そう
- 110 名前:デフォルトの名無しさん [2014/12/10(水) 03:20:00.54 ID:lFxVBhH5.net]
- そう思うなら脱アルゴリズムしたらいいんじゃない?
まあ頑張れ。 無駄な努力だと思うがな。
- 111 名前:デフォルトの名無しさん mailto:sage [2014/12/10(水) 07:41:04.02 ID:8efWXp1v.net]
- 無名関数とクロージャの区別すらつかない
馬鹿(>>110)がいるスレはここですか?
- 112 名前:デフォルトの名無しさん mailto:sage [2014/12/10(水) 09:24:15.87 ID:GPUWLQKM.net]
- >>110
関数型言語全部敵に回して何が楽しいのか、さっぱり分からん。
- 113 名前:デフォルトの名無しさん mailto:sage [2014/12/10(水) 18:52:40.21 ID:naCNbx5k.net]
- 関数をステートメントで書けるから関数プログラミングに適してると言いたいのかこの初心者は
- 114 名前:デフォルトの名無しさん mailto:sage [2014/12/11(木) 04:18:01.16 ID:fpObf9hC.net]
- 馬鹿はクロージャスレでも散々に叩かれてたのに、頑なにオレオレ定義を振りかざしてたからな
しまいにゃ「真のクロージャ」だのよく分からないことを言い出す始末
- 115 名前:デフォルトの名無しさん mailto:sage [2014/12/15(月) 12:38:25.66 ID:ZETjn4CW.net]
- なにこれ、脱アルゴリズム君なの?
彼についてなら専用スレあるからそっちで。
- 116 名前:デフォルトの名無しさん mailto:sage [2014/12/23(火) 18:15:43.45 ID:ATuB6kuL.net]
- 関数型には car/cdr は必須ですかね?haskell をみていてもそんな感じだけど
- 117 名前:デフォルトの名無しさん mailto:sage [2014/12/23(火) 18:49:48.75 ID:pWRQK/2A.net]
- むしろcar・cdrのような部分関数(空リストに対して定まらない)はなんだかんだ面倒。
使いやすいパターンマッチを導入して、car・cdrみたいなのは廃止、ってのが良い、と いうのがほぼ確定した見解だと思う。
- 118 名前:デフォルトの名無しさん mailto:sage [2014/12/24(水) 21:17:05.57 ID:+1mcRXwz.net]
- map/reduce 等で car/cdr を隠すってこと?
- 119 名前:デフォルトの名無しさん mailto:sage [2014/12/24(水) 21:30:06.24 ID:kKJ427gL.net]
- パターンマッチって書いてあるじゃない
- 120 名前:28 [2016/06/02(木) 21:56:19.82 ID:khWGy11Q.net]
- ・関数型プログラミングにおけるクイックソート・アルゴリズムの実装
www.h6.dion.ne.jp/~machan/misc/qsort-in-fp.html
- 121 名前:デフォルトの名無しさん mailto:sage [2017/02/09(木) 13:52:49.36 ID:Lyr2GEHi.net]
- LLってなーに?
- 122 名前:デフォルトの名無しさん mailto:sage [2017/02/10(金) 23:52:57.41 ID:5MVdS2z+.net]
- Lonely Lovely
孤独を愛する、孤高のプログラマのことさ
- 123 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 18:58:59.13 ID:RhESs+iK.net]
- Lovely Lolita 幼女好きのことさ
|

|