1 名前:デフォルトの名無しさん [2015/04/09(木) 08:31:01.42 ID:4yjREsCN.net] 関数型プログラミング言語 Haskell について語るスレです。 ,.-―: ̄`ー::::::::::、 /::::::::::::.::::::::::::::::::::::::::::`::、、 /::::::::::::::::::::::::::::::::::::::::::::::::::::::`、 l::::::::::::::::::::::::::::::::::::::::;':l:::::::::::\::l l:::::::::::::::::::::::::::::::::,,::::::::;-,:,::::::::::::::::l l::::::::::::::::,_,.::::,';::::::;:::::: :: l ::::::::::::::l l::::::::::/-/:::/-ニ,.::::/=,./::::::::::l ヽ:::: ´、ひ> ;: l .<ひ>' 、::::::::/ ヽ:::::  ̄ .)::; l  ̄ l::::/ < 毛の壁(岡部健)の話は禁止な 、:::::.. /:::; .,-、 l:::/、 ,―:::::::: ゝヽ- ー' 、 l::/,、ヽ l,、,、,,:、:: / ,--、,-.、_ l /::::::,、,、l l,、,、,、,、,、::、 `ー ̄-' /:::::::::::,、,、l l,、,、,、,、,、,、::ヽ /::::::::、,、,、,、,ノ:\ haskell.org (公式サイト) www.haskell.org/ 前スレ 関数型プログラミング言語Haskell Part27 peace.2ch.net/test/read.cgi/tech/1420718555/
395 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 18:50:35.89 ID:rC7lKM23.net] スレ違い氏ね Haskellerってこんな胡散臭い似非哲学者ばっかなの?
396 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 20:11:55.35 ID:eyi3DmdL.net] >>378 「面白がって」ってのは全然あたってないと思うけど。
397 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 20:57:19.41 ID:5MhrblBL.net] また変なのが沸いたもんだな。禅がどうとか。関数型はこういうやつの集まりなのか? 技術者ならありのまま受け入れろよ。空想に浸ってんじゃねーよ。禅も糞もあるかよ。 再解釈や独自の世界観も要らん。そういうことがしたければエヴァンゲリオンの監督でもしてろ。
398 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 21:32:12.05 ID:CaA5FwTY.net] 雑談。Haskell のコメントの -- って何かから受け継いだの?
399 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 21:59:14.56 ID:6mGsQHLK.net] >>390 >>392 ただのあおりだと思うけど、長く続ける話でもないので、一応、一度だけ返答を。 Haskellどころかプログラムコード全般を書くのに、禅や、井上・西田・鈴木の思想に触れる必要なんて、 まったくなく、主張もしてません。そういう類のことをやって悦に入っているのは、件の人物です。 >>387 は>>383 への、>>388 は>>386 への話に対する"例示"として出しただけです。 いわば、プログラムでいうところの、特定の箇所
400 名前:フみ有効な、ローカル変数としての扱いの話題で、 Haskellスレ全体に及ぶグローバル変数的な話題ではありません、お間違いなく。 なお、Haskellは意図せずに変数がグローバルに扱われることを防ぐ手立てが、独特かつ学びがいも あるので、興味があるのなら、各種情報をあたってください。 [] [ここ壊れてます]
401 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 22:24:42.09 ID:UvEliUlK.net] ありのままを受け入れることと 意図しないことを防ぐことは 両立しないと思うがどうするんだ
402 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 22:28:07.67 ID:1bdHe0ko.net] >>395 時々ありのままを受け入れて 時々意図しないことを防げば良いだけだと思うが
403 名前:デフォルトの名無しさん mailto:sage [2015/05/29(金) 23:00:38.74 ID:5MhrblBL.net] ありのまま受け入れた上で、 意図しないことを防げばよい。 相手の言うことをよく聞いて、十分理解したうえで、 それを否定的に考えるかどうかは当然自由だわな。 それを相手の言っていることが、理解できないからといって、 自分の辞書で再解釈し始めると、 会話が通じなくなってきて、あの人みたいになる。 これは最も相手をイラつかせる方法だろうな。 はっきり言ってケンカになる。
404 名前:デフォルトの名無しさん mailto:sage [2015/05/30(土) 00:06:51.02 ID:y2xM1Hhu.net] おれは両立しないと思うから意図は無視する 意図的に作ったものと自然にできたものを区別しない
405 名前:デフォルトの名無しさん mailto:sage [2015/05/30(土) 01:53:48.06 ID:/LSFXZZf.net] そろそろHaskellの話してくれませんかね
406 名前:デフォルトの名無しさん [2015/05/30(土) 08:55:45.75 ID:I7OEXYWz.net] >>390 岡部健(毛の壁)のような最先端が不在だよね
407 名前:デフォルトの名無しさん mailto:sage [2015/05/30(土) 11:19:25.28 ID:99bpmAVW.net] 芸人の話はもういい
408 名前:デフォルトの名無しさん mailto:sage [2015/05/31(日) 07:54:58.92 ID:tRtL6h/C.net] >>381 >えっ、結城さんそんなことしてるの? >あの人だけはバカなことに関わらないと思ってたのに。 キリスト教徒は愛とか善とか押し売りするクズばっかりで嫌い
409 名前:デフォルトの名無しさん [2015/05/31(日) 09:07:02.06 ID:6v3o16Hx.net] 結城さんに手出しできなくてプルプルしとるな
410 名前:デフォルトの名無しさん mailto:sage [2015/05/31(日) 09:52:05.60 ID:y0vichKB.net] 数学ガール、どうなんだろう、チラ見ではめんどくさそうであきらめたんだが
411 名前:デフォルトの名無しさん mailto:sage [2015/05/31(日) 10:22:25.59 ID:/wZ7j18U.net] cabal configure && cabal build && cabal sdistすると、Main.hsしか梱包されないんだけど、ソースを全部梱包するにはどうしたらいいですか? 実際のソース src/Main.hs src/Util.hs src/Hoge.hs 梱包されたソース dist/hoge-0.1.0.0/src/Main.hs hoge.cabal ―――――――――― name: hoge version: 0.1.0.0 synopsis: hoge ... build-type: Simple extra-source-files: README.md cabal-version: >=1.10 executable hoge main-is: Main.hs other-extensions: FlexibleInstances build-depends: base >=4.8 && <4.9 hs-source-dirs: src default-language: Haskell2010
412 名前:デフォルトの名無しさん mailto:sage [2015/05/31(日) 10:28:49.84 ID:Z+YrU6Ep.net] エセ哲学で煙に巻く、というと青木淳を思い出す
413 名前:デフォルトの名無しさん mailto:sage [2015/05/31(日) 11:16:11.11 ID:Y5Q5hqkx.net] >>405 other-modules
414 名前:デフォルトの名無しさん mailto:sage [2015/05/31(日) 11:23:47.90 ID:/wZ7j18U.net] >>407 ありがとうございます other-modules: Util, Hoge としたら出来ました。.hsつけちゃダメなんですね
415 名前:10人に一人はカルトか外国人 [2015/05/31(日) 12:47:30.55 ID:gFQ+S0pm.net] ★マインドコントロールの手法★ ・沢山の人が偏った意見を一貫して支持する 偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法 ・不利な質問をさせなくしたり、不利な質問には答えない、スルーする 誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法 偏った思想や考え方に染まっていたり、常識が通じない人間は、頭が悪いフリをしているカルト工作員の可能性が高い 靖国参拝、皇族、国旗国歌、神社神道を嫌うカルト 10人に一人はカルトか外国人 「ガスライティング」で検索を!
416 名前:デフォルトの名無しさん mailto:sage [2015/05/31(日) 23:07:34.36 ID:bhwHs6Kp.net] すみません、分からないので教えて下さい。 MyData型というのがあるとして、 次のような感じの再帰的なデータ構造を 作りたいのですがどうやって 宣言したらいいのでしょうか? MyData = [A | B | C | MyData]
417 名前:デフォルトの名無しさん mailto:sage [2015/06/01(月) 00:37:34.71 ID:7t5thP4d.net] newtype MyData = MyData [MyValue] data MyValue = A | B | C | D MyData
418 名前:デフォルトの名無しさん mailto:sage [2015/06/01(月) 07:49:51.08 ID:2iXePbMK.net] >>402 憎しみと悪が世の中に満ちて欲しい我らとしては目障りよのう^^;
419 名前:デフォルトの名無しさん [2015/06/01(月) 08:39:30.47 ID:E7FyS8+c.net] https://twitter.com/Nico2Justice/status/604465683481530368 岡部氏の本、売れているようだが、これでもまだおまえらは否定するか?
420 名前:デフォルトの名無しさん mailto:sage [2015/06/01(月) 10:31:20.23 ID:hNOdkfuP.net] i.imgur.com/GyubXO5.jpg 金返せだとw 返金保障はしてないの? FX本で揉め事起こしておいてよくやるぜ
421 名前:デフォルトの名無しさん [2015/06/01(月) 15:23:30.31 ID:Z2VsugfR.net] オアゾの丸善行ったら平積みでベストセラーになってからうっかりして『関数型プログラミングに目覚めた! IQ145の女子高校生の先輩から受けた特訓5日間』買っちゃった。 あの厚さにしては安いし。
422 名前:デフォルトの名無しさん mailto:sage [2015/06/01(月) 21:41:48.25 ID:AkSsBG07.net] *釣り中
423 名前:デフォルトの名無しさん [2015/06/01(月) 22:06:25.83 ID:K67NswvK.net] @tanakhよ、速やかに岡部健の記事を抹消しろ 最終警告。なめんな
424 名前:デフォルトの名無しさん mailto:sage [2015/06/01(月) 23:47:52.81 ID:Y6nutYnE.net] >>417 直接言えよ
425 名前:デフォルトの名無しさん [2015/06/02(火) 06:11:38.24 ID:rgUwgwJK.net] タナコフ、kenokabeに関する記事なんて書いてたっけ?
426 名前:デフォルトの名無しさん mailto:sage [2015/06/02(火) 06:33:33.99 ID:/sF+2pLL.net] これは私見ですが、田中氏のAskに誰かが昨日、毛の壁関連のリンク付きで質問をしたのに対して、>>417 がクレーム付けてるのではと思います というのは、田中氏はAskとTwitterを同期させているからです。よって(どこかの誰かがした質問に含まれる)毛の壁リンクも田中氏(のアカウントから自動的)に呟かれることになります。
427 名前:デフォルトの名無しさん mailto:sage [2015/06/02(火) 10:16:26.38 ID:Tk2gIrJG.net] sandboxのあるディレクトリは移動するとマズい。ってことに気づいた。 $ cd xxx $ cabal sandbox init $ cd ../ $ mv xxx yyy $ cd yyy $ cabal install hoge cabal: No sandbox exists at /.../xxx/.cabal-sandbox
428 名前:デフォルトの名無しさん [2015/06/03(水) 08:39:22.30 ID:aJoKJBXt.net] 誰か岡部健のMMD作ってくれよ
429 名前:デフォルトの名無しさん mailto:sage [2015/06/03(水) 10:26:36.81 ID:I/rtMDUu.net] モナド3則って圏論的にはどうやって出てくるの?
430 名前:デフォルトの名無しさん mailto:sage [2015/06/03(水) 10:53:49.25 ID:lNaMRMgL.net] 順番が逆じゃないか?圏論で言うところのモナドってのは<T,η,μ>の3つ組が µ(Fµ) = µ(µF) と µ(Fη) = idF = µ(ηF) を満たすもの、と定義されている。 Haskellのモナドクラスってのは単にμとηに相当する関数を持っていることを要請するだけで、 上の式を満たすようにインスタンスを定義しないと圏論で言うモナドにはならない。 Haskellのモナド3則は、上の式をKlisli starを使って書き直すと出てくるんじゃなかったっけな。 一度やったが、ここだけやっても面白くなかった記憶がある。
431 名前:デフォルトの名無しさん mailto:sage [2015/06/03(水) 14:12:43.98 ID:I/rtMDUu.net] >>424 > 圏論で言うところのモナドってのは<T,η,μ>の3つ組が > µ(Fµ) = µ(µF) と µ(Fη) = idF = µ(ηF) を満たすもの、と定義されている。 なぜそんな3つ組を考えてなぜそういう条件をつけるのかというのは、 ここでは聞いちゃいけなかったのかな?w 圏論の本では天下りに書いてあるだけなので教えてくれるとうれしい
432 名前:デフォルトの名無しさん mailto:sage [2015/06/03(水) 17:22:57.96 ID:lNaMRMgL.net] >>425 単位元の存在と結合則だから。 Haskellで何故モナド則が必要かは↓を見れば分かる。 https://wiki.haskell.org/Monad_laws モナド則を満たさないインスタンスは取り回しが悪い。モナドにする必要性が無い。 f : (Monad m) => ...なジェネリックな関数の振る舞いに何も期待できなくなる。 圏論の話をしたいなら他所でやってくれ。単芝生やす前に>>423 で>>425 の意図が読めるか拙い頭で自省しとけ。
433 名前:デフォルトの名無しさん mailto:sage [2015/06/03(水) 18:36:14.98 ID:nbbdPdbj.net] 草が自生するわهههههههههههههههههههههه
434 名前:デフォルトの名無しさん mailto:sage [2015/06/03(水) 20:40:35.99 ID:o4gP2WaR.net] 継続 foo x = ($ x) bar m f = \ g -> m (flip f g) おまじない encode = ($ return) decode = (>>=) モナド則 decode (return x) = foo x encode (decode m) = m decode (m >>= f) = (decode m) `bar` (\ x -> decode (f x))
435 名前:デフォルトの名無しさん mailto:sage [2015/06/04(木) 11:03:34.20 ID:TEKHUXbi.net] >>425 関手圏における対象(元の圏での自己関手)Fたちの「べき乗」 FF, FFF, FFFF, ... たちを Fにまとめるための積に相当するものとしてμが、そしてそのような「積」が結合法則を 満たすことの要請として μ(Fμ)=μ(μF) が,そしてFの「ゼロ乗」に相当するものとしてηが与えられる。ηが「積の単位元」 に該当するための要請が、μ(Fη)=id F =μ(ηF) となる。 半群の代数法則を集合と写像の図式で書き表してみると上のような法則がどのように して導かれるかわかる。 このような意味でモナドは「一般化された半群」だと言える。 一度モナドFが与えられたとき、Fを利用して X -> F Y 型の射を「合成」する手段が得られることが わかる。KleisliにちなんでKleisli射などと呼ばれる。 詳しいことはマクレーン「圏論の基礎」を読んで欲しい。例がいちいち高尚なので読みづらいが どのみちあの全ての例を理解できるひとなどいないと思っておけばいい。
436 名前:デフォルトの名無しさん mailto:sage [2015/06/04(木) 12:14:47.63 ID:6HPpoO/k.net] >>429 サンクス 要するに、まず、μはモナド領域における積演算であり、それは結合法則を満たす、でいいよね。 そしてηはその積演算についての単位元、と言いたいが、ηはモナド領域の元ではないので そうは言えないよね?
437 名前:デフォルトの名無しさん mailto:sage [2015/06/04(木) 17:28:26.87 ID:TEKHUXbi.net] >>430 「モナド領域」で何を言いたいのかわからない。 #言葉はなるべく正確に使おう >>429 の補足 モナドと半群Gの類似性を捉えるためには「単位元」を「ゼロ項演算」とみなすとよい: e : * --> G ここで、* は単元集合ならなんでもよいのだが、何か一つ決めておく。そして任意の集合Sに対して * × S と S が 1-1 かつontoな写像で結ばれているので同じと「みなす」ことにより、* は「デカルト積における単位元」 とみなせる。(集合A,Bの共通部分 A ∩B を「積集合」と呼ぶ場合があるが、全然違う「積」であることに注意)。 半群Gの「積をとる演算」m はもちろん m : G×G --> G となる。 (つづく)
438 名前:デフォルトの名無しさん mailto:sage [2015/06/04(木) 17:30:36.75 ID:TEKHUXbi.net] >>431 (つづき) こうやって考えてみると半群Gの結合法則は、G×(G×G)と(G×G)×Gを(当然の如く)同一視したうえで m ○ (idG×m) = m ○ (m×idG) のように表せる。ただし、○は写像の合成を表すものとする。また、 idG×m : G×(G×G) --------------> G×G <x, <y,z>> |---> <x, m(y,z)> など。そして単位元については m ○ (idG×e) = idG = m ○ (e×idG) となる。ここで、 idG×e:G ---------> G×G g |-------> <g,1> など。半群というものをこのような視点で捉えて初めてモナドとの関係が見えてくるわけです。 抽象的に見て初めて見えてくるのであってそれを乱暴に「モナドは半群である」と言い切ると、 色々誤解を招くわけです。
439 名前:デフォルトの名無しさん mailto:sage [2015/06/04(木) 17:33:45.51 ID:TEKHUXbi.net] (全角スペースの連続って無視されるのか。失敗した)
440 名前:デフォルトの名無しさん mailto:sage [2015/06/04(木) 17:52:43.81 ID:6HPpoO/k.net] μとηを普通に(自然に)定義すればモナド則は自ずと満たすようになるのではないの? むしろモナド則を満たさないように定義する方が難しいのでは?
441 名前:デフォルトの名無しさん mailto:sage [2015/06/04(木) 18:10:46.82 ID:OGWHpt3Y.net] Haskell入門の中間テストって リストはモナドであることを証明せよとか このデータ型はモナドか? 理由と共に答えよ とか 必要な関数を足して、このデータ型をモナドにせよ とか出るんでしょ!ひえぇ
442 名前:デフォルトの名無しさん mailto:sage [2015/06/04(木) 21:25:30.08 ID:yrg33OPn.net] >Fの「ゼロ乗」に相当するものとしてηが与えられる。 ηと恒等関手の違いがさっぱりわからない こんなの絶対おかしいよ
443 名前:デフォルトの名無しさん mailto:sage [2015/06/04(木) 22:57:11.06 ID:yrg33OPn.net] ηは単位元 恒等関手も単位元 F^n ⇔ F ってことは F も単位元かな 1^n = 1 と同じように
444 名前:デフォルトの名無しさん mailto:sage [2015/06/04(木) 23:01:33.99 ID:TEKHUXbi.net] >>436 ηはControl.Monad では return と呼ばれてる。FをモナドとしたときHaskell風に言えば η :: a -> F a だよ。ηは「Hask圏における自己関手を結ぶ自然変換」であることを理解しよう。 Haskellとモナドだけに関連しても、 1.Hask圏 (これが議論の基礎となる) 2.Hask圏の自己関手の圏 EndoFunct(Hask) 3.Hask圏のモナド(Hask上の自己関手の一種)Fが作り出す Kleisli圏 という最低でも3つの「圏論的視点」がある。視点を変えると名前が変わったりするので要注意。 たとえば、Hask圏での「自己関手」は EndoFunct(Hask) という圏では「対象」となる。 また、「Hask圏における自己関手を結ぶ自然変換」は EndoFunct(Hask) では「射」となる。 マクレーンの本は「あれも書かなきゃこれも書かなきゃ」って感じでどんどん話が進むし 証明は読者に任せたwwwってノリの箇所も結構あるので一度きちんと自分で整理してみることを 勧める。
445 名前:デフォルトの名無しさん [2015/06/05(金) 16:27:16.31 ID:oA4lY9uS.net] Amazonの岡部健氏のレビュー、ようやくまともな力学がはたらくようになったな。 おまえら【自称】関数型コミュニティーのしょーもない組織票も、所詮はごくごく一部の小さな力に過ぎない 「正しさ」ってどんなにおまえらがわめいてもねじ曲げられないのさ
446 名前:デフォルトの名無しさん [2015/06/05(金) 16:27:52.01 ID:oA4lY9uS.net] 田中もボレロもしょーもないことやってるようだが、騒ぐなら「コード書け」。
447 名前:デフォルトの名無しさん mailto:sage [2015/06/05(金) 16:56:46.59 ID:NH+N2vxp.net] >>439 正しい力学w ☆☆☆☆☆ 4 人中、0人の方が、「このレビューが参考になった」と投票しています。 ☆☆☆☆☆ 55 人中、7人の方が、「このレビューが参考になった」と投票しています。 ☆☆☆ 30 人中、2人の方が、「このレビューが参考になった」と投票しています。 ☆☆☆☆☆ 85 人中、9人の方が、「このレビューが参考になった」と投票しています。 ☆ 106 人中、97人の方が、「このレビューが参考になった」と投票しています。
448 名前:デフォルトの名無しさん mailto:sage [2015/06/05(金) 19:45:34.72 ID:wKAWiqlA.net] www.kenokabe.com/blog/ 問い合わせ:05/03/15 04:44:35 1) レビューに対する投票について御社社内で不正な操作があったのか? 2) 不正なユーザによる複数投票があったのか? 3) 外部からの不正アクセスによる投票操作があったのか? 4) なぜ★5のレビューが2件も削除されているのか? という4点について御社の公式な見解を教えていただけませんでしょうか。 回答:2015年5月3日 8:19 お客様からお問い合わせいただいた「1)」、「2)」、「3)」の件につき まして、当サイトでは、カスタマーレビューについて、より正確な投票数をカ ウントするため、投票の傾向をシステムによって監視しています。特定のお客 様が投稿したレビュー、または特定の商品に関するレビューに対して集中的に 投票が行われているなど、不適切な投票とみなされた場合は、自動的に投票が 削除されます。また同一カスタマーや同一カスタマーの複数アカウントからの 投票など不正と認められた場合、自動的に投票数が削除されます。 なお「4)」の件につきまして、当サイトのレビューが非掲載となる場合、投 稿者ご自身でレビューを削除された場合と当サイトのレビューガイドラインに 抵触していると判断したため削除された場合がございます。上記のどちらかで 非掲載となりますが、詳細については、投稿者の個人情報およびプライバシー を保護の観点から、ご案内できませんことをご了承ください。 参考:https://twitter.com/xr0038/status/592286801282240512 kenokabe 本に好意的なレビューをしている coolio 氏のレビューページ www.amazon.co.jp/gp/cdp/member-reviews/A2KNM1BDUB22Q の google キャッシュを見たらユーザ名が kenokabe で吹き出しそうになった f.hatena.ne.jp/xr0038/20150426201833
449 名前:岡部健 [2015/06/06(土) 07:00:48.03 ID:/qvfFI9e.net] そんなレビューなんて知らないね えー加減にせーよ
450 名前:デフォルトの名無しさん mailto:sage [2015/06/06(土) 07:04:20.42 ID:EMdVS6mw.net] はいはいなかったことなかったこと アホか
451 名前:デフォルトの名無しさん [2015/06/06(土) 14:03:45.58 ID:/qvfFI9e.net] 岡部氏の本を精神病のコーナーに並べて置いたのはおまえだろ?
452 名前:デフォルトの名無しさん [2015/06/06(土) 14:04:41.32 ID:/qvfFI9e.net] 田中、おまえも共謀とみなす
453 名前:デフォルトの名無しさん mailto:sage [2015/06/06(土) 15:09:56.77 ID:EMdVS6mw.net] はいはい、勝手に田中認定すれよ どアホが
454 名前:デフォルトの名無しさん mailto:sage [2015/06/06(土) 16:17:49.33 ID:G0vvOPfV.net] 岡部さん、田中と村上に牙を剥くならご一緒に江添もいかがですか?
455 名前:デフォルトの名無しさん [2015/06/06(土) 17:04:05.29 ID:QYGhKlvX.net] kenokabe-techwriting.blogspot.jp/2015/04/blog-post.html?m=1 おまえらが国際的にみて異端だとするこの記事について論理的に反論してみて?ほれ? 村上、いつも遠くから吠えるだけだな?たまには立論してみろやクソアマ
456 名前:デフォルトの名無しさん [2015/06/06(土) 17:04:35.64 ID:QYGhKlvX.net] マイクロソフトを否定できるか? これは権威主義のおまえらの試金石だ
457 名前:デフォルトの名無しさん mailto:sage [2015/06/06(土) 17:27:34.64 ID:ZV6D40F6.net] 否定ならいくらでもできるが、依存を断ち切る行動には結びつかない 前提である【自称】関数型コミュニティが横暴に振る舞っているのかどうかさえ判断はできないのだから反論する必要すらない マイクロソフトの定義は正しいだろう しかしそのことが【自称】関数型コミュニティが横暴に振る舞っていることの証拠にはならないのだから つまり そもそもこの記事に論点が存在するのかどうかすら怪しい 誰かソースを出してはくれないだろうか
458 名前:デフォルトの名無しさん mailto:sage [2015/06/06(土) 17:34:13.60 ID:EMdVS6mw.net] 毛は根っからの嘘つき 終わり
459 名前:デフォルトの名無しさん mailto:sage [2015/06/06(土) 18:20:24.88 ID:sdR7Jr6e.net] 岡部氏の国際的評価 kanae.2ch.net/test/read.cgi/prog/1431818519/635-636 「全く意味不明」 「完全に不可解」
460 名前:デフォルトの名無しさん mailto:sage [2015/06/06(土) 18:59:18.59 ID:GcGbQkec.net] 単なる毛の嘘。Microsoftの記事は「命令型」と「関数型」を対比してるだけ。 タイトルからして「関数型プログラミングと命令型プログラミング」。 https://msdn.microsoft.com/ja-jp/library/bb669144.aspx 「一方、C#、Visual Basic、C++、Java などのオブジェクト指向プログラミング (OOP) 言語を含む ほとんどの主流言語は、主に命令型 (手続き型) プログラミングをサポートするために作成されています。」 「C#、Visual Basic、C++、Java などのオブジェクト指向プログラミング (OOP) 言語を含む」 「ほとんどの主流言語は、主に」「命令型 (手続き型) プログラミングをサポートするために作成」 誰もオブジェクト指向と関数型を対比してない(毛を除く)。毛の読解力が小学
461 名前:生レベルで欠如してるだけ。 そもそもSchemeやHaskellでオブジェクト指向プログラミングしたり、 C++やJavaScriptで関数型プログラミングできるんだから、対立してるわけがない。 [] [ここ壊れてます]
462 名前:デフォルトの名無しさん mailto:sage [2015/06/06(土) 19:36:56.78 ID:IblTw25F.net] むかしむかしOOPを普及させようとした人達は 「C言語でもOOPできる」みたいな話に全力で反論してたんだぜ 古本屋で買った「オブジェクト指向入門」に 「混血によるアプローチは混血なりの品質しかもたらさない」って書いてある いま確認したから間違いない
463 名前:デフォルトの名無しさん mailto:sage [2015/06/06(土) 19:51:13.31 ID:GcGbQkec.net] 確かに「C++やJavaScriptで関数型プログラミング」とかも、 Haskellみたいな専用の関数型言語に比べて不自然な面があるのは 否定はしない。逆に然り。両方ともサポートした言語もあるにはあるが。
464 名前:デフォルトの名無しさん mailto:sage [2015/06/06(土) 19:53:20.38 ID:GcGbQkec.net] >>456 × 逆に然り ○ 逆も然り
465 名前:デフォルトの名無しさん mailto:sage [2015/06/06(土) 20:03:34.07 ID:0M3+/TFN.net] Ocamlがあるじゃねえか
466 名前:デフォルトの名無しさん [2015/06/06(土) 20:19:35.99 ID:uv2S2fjH.net] 田中の返答は反論になってない。マイクロソフトの主張は明らかだ。 特権意識・差別意識まみれの根腐れたおまえらが「見たくないものはみえないふり」して小さな島国のごく一部の界隈で、 国際的潮流に乗ってる有識者を【村八分】にしたい、してるだけ。 チョン同然、あるいはチョンそのもので構成されていても別段驚かないし、その傾向がある
467 名前:デフォルトの名無しさん mailto:sage [2015/06/06(土) 20:25:57.60 ID:KMNvqcU5.net] >>456 不自然というか、C++とかでも頑張れば関数型プログラミングも可能。 ただしそれは「関数型プログラミング言語をC++で実装」するようなもん。 実際、初期の関数型言語はCで実装されていたりしたしね。 だから今時は最初からHaskellなり使えばいいというレベルの話。
468 名前:デフォルトの名無しさん mailto:sage [2015/06/06(土) 20:43:39.24 ID:sdR7Jr6e.net] 毛が批判してる「国内」コミュニティの奴らは フランス情報学研究所で博士号取得して欧米外資銀で関数型プログラマやってたり 米計算機科学会や国連情報処理学会の関数型プログラミング委員とか委員長だからなw
469 名前:デフォルトの名無しさん [2015/06/06(土) 20:46:43.22 ID:24cQnkdA.net] 岡部関連は他でやってくれ 【茶道モテ】毛の壁ファンクラブ57【孤立無援】 [転載禁止]&#169;2ch.net yomogi.2ch.net/test/read.cgi/net/1432605927/ 土曜・日曜は岡部健のブログを読み解こう!★2 [転載禁止]&#169;2ch.net kanae.2ch.net/test/read.cgi/prog/1432729445/
470 名前:デフォルトの名無しさん mailto:sage [2015/06/06(土) 20:48:26.12 ID:0M3+/TFN.net] いつまで阿呆の相手してるんだ? もっと有意義な話をしてくれ
471 名前:デフォルトの名無しさん mailto:sage [2015/06/06(土) 20:57:41.59 ID:GcGbQkec.net] 正直スマンカッタ どこぞで話題になってたones=1:onesのonesが(1:)の最小不動点(実際には唯一の不動点)という件、 Haskellでも再帰的定義は常に最小不動点という解釈で合ってる? もちろん:とか関数はlazyだとして。
472 名前:デフォルトの名無しさん mailto:sage [2015/06/06(土) 22:10:30.32 ID:h/G/zDwf.net] >>460 もっとふざけたことしてるやつもいるからな。VBAで関数型プログラミングとか。
473 名前:デフォルトの名無しさん mailto:sage [2015/06/07(日) 05:28:41.31 ID:MhTDgKGm.net] 竹塩壁なの?本名
474 名前:デフォルトの名無しさん mailto:sage [2015/06/07(日) 12:56:36.19 ID:jVcLNsk7.net] そういや、昔O'Haskellなんてものがあったな 結局あれ流行らなかったね
475 名前:デフォルトの名無しさん [2015/06/07(日) 13:37:10.71 ID:lpscvJOy.net] >>467 割と早期にTimberに移行したから。 timber-lang.org/index.html そもそもサブタイピング便利か? というのもあり。 OlegのHListとか見るとねえ……
476 名前:デフォルトの名無しさん [2015/06/08(月) 08:10:38.52 ID:rqAfod0u.net] おまえらは岡部健のポテンシャルに嫉妬してるだけ
477 名前:デフォルトの名無しさん [2015/06/08(月) 13:32:32.63 ID:ZD5oJ+MT.net] 559 仕様書無しさん 2015/06/08(月) 12:23:22.32 岡部健、チマチマとメールでこっそり罵倒ww b.hatena.ne.jp/entry.touch/253482981/comment/shokai
478 名前:デフォルトの名無しさん mailto:sage [2015/06/08(月) 14:13:06.97 ID:pkFJsD/2.net] t.co/ts9QDRIiUp kenokabe こと 岡部健 #毛の壁 のブログにてコメントを出すと、もれなくメールにて毛の壁による罵倒、ならびにヘア告訴されるかもしれない権利が付与されるそうに御座いまする。 桑原桑原。
479 名前:デフォルトの名無しさん mailto:sage [2015/06/08(月) 19:10:07.57 ID:dWqRejTW.net] 毛の壁先生、お願いですから掲示板荒らすのやめて下さい 2chだけじゃないですよ?
480 名前:デフォルトの名無しさん mailto:sage [2015/06/08(月) 20:21:54.95 ID:cjhIgMXy.net] OCamlerはいい加減、荒らすのをやめて欲しい。 MLスレは閑古鳥が鳴いているのに、マ板の岡部スレでは月曜の朝からOCamlerで大賑わい。 少しは自分たちの異常さを認識したほうがいい。
481 名前:デフォルトの名無しさん mailto:sage [2015/06/08(月) 21:03:59.90 ID:wHGZFrsF.net] 843 :名無しさん@ゴーゴーゴーゴー!:2015/06/08(月) 19:50:18.31 ID:1muq0MvU0 mapからreduceを作るとか、普段どれだけゆるい感じで物事考えているかよく分かるね こんなの質問する前に1秒でも思考実験していれば分かることだ 844 :名無しさん@ゴーゴーゴーゴー!:2015/06/08(月) 20:13:41.12 ID:1muq0MvU0 reduce :: (a -> b -> a) -> a -> [b] -> a reduce f z xs = let y = z : map (\(i, x) -> f (y !! i) x) (zip [0..] xs) in last y 試しに挑戦してみたら案外いけましたすみません>< 847 :名無しさん@ゴーゴーゴーゴー!:2015/06/08(月) 21:02:29.22 ID:asgdcTzL0 ちょwwHaskellスレが毛の話題で荒れてるからswapしろよwww 👀 Rock54: Caution(BBR-MD5:405b7f1af0f5a85b432d79fa769e9aeb)
482 名前:デフォルトの名無しさん [2015/06/08(月) 21:31:31.35 ID:zzT0ePpx.net] なるほどこれ頭いいな。scanlを scanl z f xs = ys where ys = z:(zipWith f xs ys) と書いてから、zipWith xs ys をmapで書き直せば 確かにこうなるな。最後の要素を取ればfoldlになるわけだ。
483 名前:デフォルトの名無しさん mailto:sage [2015/06/09(火) 05:59:45.81 ID:keQMp1Zr.net] 858 :名無しさん@ゴーゴーゴーゴー!:2015/06/09(火) 05:58:57.73 ID:FmWR9u6b0 >>852-853 インデックス使わないバージョン(zipは使う) reduce :: (a -> b -> a) -> a -> [b] -> a reduce f z xs = f lasty lastx where (lastx, lasty) = last xys xys = zip xs ys ys = z : map (\(x, y) -> f y x) xys っていうかHaskellスレ行けw
484 名前:デフォルトの名無しさん mailto:sage [2015/06/09(火) 14:28:52.87 ID:keQMp1Zr.net] まずscanlに相当するものをmyScanl f r xs = ys where ys = r: zipWith f ys xsとして作ります。 zipWith f ys xsをmapを使って書き換えればmap (\(x,y) -> f y x) (zip xs ys)となりますから、 myScanl f r xs = ys where ys = r: map (\(x,y) -> f y x) (zip xs ys)となります。 scanlで得られたリストの最後の要素がfoldlつまりreduceの結果になりますから、 reduce f r xs = last ys where ys = r: map (\(x,y) -> f y x) (zip xs ys)で望みのものが得られます(reduce (+) 0 [1..9] → 45)。 もちろん再帰をこのようにまわりくどく用いた定義をせずに簡明な普通の再帰で書くべきです
485 名前:デフォルトの名無しさん [2015/06/09(火) 15:29:01.79 ID:Wpjwmkjs.net] 毛の壁ネタは専用スレで。 そこからの転載も不要。
486 名前:デフォルトの名無しさん mailto:sage [2015/06/09(火) 16:22:18.33 ID:AVtZDhrR.net] OCaml病人の隔離スレが必要かもしれんな。
487 名前:デフォルトの名無しさん mailto:sage [2015/06/09(火) 16:28:45.86 ID:GtnmaKAw.net] 関数型隔離病棟はよ
488 名前:デフォルトの名無しさん mailto:sage [2015/06/09(火) 17:31:06.57 ID:keQMp1Zr.net] マ板の岡部スレでOCamlerにコテンパンに論破された松沢がこっちに来たな。 Haskellプログラミング以外の話はよそでやれ
489 名前:デフォルトの名無しさん mailto:sage [2015/06/09(火) 18:12:13.77 ID:s+m3IBNO.net] reduce f r xs = last ys where ys = r : map (\(x,y) -> f y x) (zip xs ys) は面白いと思う
490 名前:デフォルトの名無しさん [2015/06/09(火) 18:36:24.03 ID:Wpjwmkjs.net] しばしば目にするパターンではあるんだよな。 余再帰を巧く使いこなせるようになりたいとは思う。
491 名前:デフォルトの名無しさん mailto:sage [2015/06/09(火) 19:37:05.34 ID:YMX6lY//.net] 初心者スレが見当たらないのでここに書き込ませてください。 「$演算子による関数適用の区切り」と「.演算子による関数合成」 この違いというか使い分けって $演算子は括弧対応を沢山省略できて便利 例: sin $ cos $ tan $ x + 1 .演算子は関数合成で変数に束縛可能になるから便利 例: fun = sin . cos . tan . (+ 1) くらいかなと思ったのですが、後者は fun x = sin $ cos $ tan $ x + 1 別にこれでも構わないわけですよね。 .演算子の利点って他に何があるんでしょうか?
492 名前:デフォルトの名無しさん [2015/06/09(火) 19:46:28.21 ID:Wpjwmkjs.net] >>484 ポイントフリー教信者が使うため。 ってのはともかく、mapみたいな高階関数に関数を 渡さなきゃいけないところで、 map (¥x -> f $ g x) xs map (f . g) xs を見比べれば意味がわかるのでは。 なにかに関数を連鎖して適用した結果ではなくあくまで 連鎖した関数そのものが欲しい時には ( . ) が便利。
493 名前:デフォルトの名無しさん mailto:sage [2015/06/09(火) 20:00:13.95 ID:YMX6lY//.net] 「関数そのものが欲しい時」って fun x = sin $ cos $ tan $ x + 1 一応これでも目当ての関数 fun が得られてると思うのですが、要は「引数って邪魔だよね」的な感覚? 美的感覚だけでなく実行効率も違ってくるのでしょうか。
494 名前:デフォルトの名無しさん [2015/06/09(火) 20:10:23.23 ID:Wpjwmkjs.net] 実行効率は一緒。 (f . g) を普通に「gしてfする」とか読むのになれると引数の方がじゃまになる。 「¥x -> f $ g $ x +1 」 より 「 f . g . (+1)」の方が、 「1足してgしてfする」と読みやすいし明瞭でしょ。 そのうちmapの引数にいちいちラムダ式書いてられるかって気になるよ。 よく使うものの構文は軽くなくてはいけない、というだけ(美的感覚とは少し違う)。
495 名前:デフォルトの名無しさん mailto:sage [2015/06/09(火) 20:13:23.65 ID:YMX6lY//.net] ポイントフリーでググってみましたが... 例えば fact :: Integer -> Integer fact n = product [1..n] よりも fact = foldl (*) 1 . enumFromTo 1 のほうがスマートで好まれるのでしょうか。 実行効率同じなのになんだか可読性を犠牲にしすぎのように思えるのですが。