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/
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 のほうがスマートで好まれるのでしょうか。 実行効率同じなのになんだか可読性を犠牲にしすぎのように思えるのですが。
496 名前:デフォルトの名無しさん [2015/06/09(火) 20:21:06.13 ID:Wpjwmkjs.net] >>488 ポイントフリー教に入信する理由は全然ない(本当にやめてほしい)。 簡単に「〜して…して〜する」みたいに読める時だけ使えば十分。 いちいち名前をつける必要のない(むしろ使い捨てなので名前をつけるべきでない)ような 関数のチェインをラムダ式よりも軽い構文で書ける、というのがまずは利点。 もう少し慣れてくると今度は Control.Lensパッケージが 関数合成演算子( . )を あたかもオブジェクト指向言語のメソッド呼び出しであるかのように見せる 芸当を見せてくれるけど、それはまだ先の話。
497 名前:デフォルトの名無しさん mailto:sage [2015/06/09(火) 20:39:29.39 ID:YMX6lY//.net] ありがとうございます。ちょっとだけ感覚が分かってきました。
498 名前:デフォルトの名無しさん mailto:sage [2015/06/09(火) 22:00:18.96 ID:On8D0YSk.net] ポイントフリーの理由は、読む能力を上げることだろうね 人間が書いたものは読めないならクレームをつけて書き直させることができるが 自然現象のようなものを読む場合は読む人の能力に全てがかかっている
499 名前:デフォルトの名無しさん mailto:sage [2015/06/09(火) 22:31:32.15 ID:lp6qdJfP.net] あまりに自然現象のようなレスなのでびっくりしている
500 名前:デフォルトの名無しさん mailto:sage [2015/06/09(火) 23:05:53.18 ID:On8D0YSk.net] 驚き最小の法則ってあったけど なんで驚いた側ではなく驚かせた側を改善しようとするのかね 両方改善した方がいいのに
501 名前:デフォルトの名無しさん mailto:sage [2015/06/09(火) 23:31:39.42 ID:nX857Zqc.net] とても自然現象です。すごく。
502 名前:デフォルトの名無しさん mailto:sage [2015/06/09(火) 23:31:47.34 ID:s+m3IBNO.net] >>493 驚かせる側=言語設計者より 驚く側=プログラマのほうが圧倒的に人数が多いから、 前者が改善したほうが合理的。 …とかくだらないこと聞くなよ。 mapでreduce実装のほうがまだためになる >>492 はワロタ
503 名前:デフォルトの名無しさん mailto:sage [2015/06/09(火) 23:49:25.76 ID:On8D0YSk.net] 圧倒的多数が改善するより、少数が改善する方が合理的? それは自明ではないよね
504 名前:デフォルトの名無しさん mailto:sage [2015/06/10(水) 00:12:15.37 ID:4dIY3WJF.net] よそでやれ
505 名前:デフォルトの名無しさん mailto:sage [2015/06/10(水) 02:25:01.58 ID:7goP4N8P.net] こうどなあおりあい
506 名前:デフォルトの名無しさん mailto:sage [2015/06/10(水) 07:04:49.86 ID:xkthzaZS.net] >>496 合理的かどうかは知らんが、 出来る奴程仕事が舞い込む理屈だよ。
507 名前:デフォルトの名無しさん mailto:sage [2015/06/10(水) 10:52:14.97 ID:t1zCKUmg.net] HaskellやOCamlの設計は大部分が重複していて真の設計者が誰なのかわからんから 設計者を探し出して可読性とかを要求するという古典的なやり方が効く保証がない
508 名前:デフォルトの名無しさん mailto:sage [2015/06/10(水) 11:04:20.00 ID:McYDyKet.net] ワードサラダ汚染マジうざい>On8D0YSk,t1zCKUmg
509 名前:デフォルトの名無しさん mailto:sage [2015/06/10(水) 11:56:36.76 ID:t1zCKUmg.net] どのワードをうざいと思ったか教えてくれ 可読性かな?
510 名前:デフォルトの名無しさん [2015/06/10(水) 12:46:16.17 ID:vkTp1NO/.net] 端的に意味不明だろ。
511 名前:デフォルトの名無しさん mailto:sage [2015/06/10(水) 13:15:55.24 ID:t1zCKUmg.net] 意味がわかる人もわからない人もいると思う 後者がすごい自信を持っている理由を教えてほしい 常識的には「わからない」より「わかる」方が有能だと思う 今それが逆転しているのはなぜなのか
512 名前:デフォルトの名無しさん mailto:sage [2015/06/10(水) 14:01:51.47 ID:vxCnSfpA.net] 荒らしなので無視してね
513 名前:デフォルトの名無しさん mailto:sage [2015/06/10(水) 14:08:38.12 ID:YrTGTRFm.net] △ 「意味不明」 ◯ 文章の論理が根本的に間違っていてコミュニケーションが成立しない 完全に対話不可能だから二度と出てくんな。
514 名前:デフォルトの名無しさん mailto:sage [2015/06/10(水) 14:09:43.52 ID:YrTGTRFm.net] >>505 スマンカッタ
515 名前:デフォルトの名無しさん [2015/06/10(水) 17:54:46.33 ID:9PwGA43Z.net] 時代はK言語だろ
516 名前:デフォルトの名無しさん mailto:sage [2015/06/10(水) 19:36:45.21 ID:Gkss7rSH.net] >>508 つまりハングルか。
517 名前:デフォルトの名無しさん [2015/06/10(水) 21:12:55.26 ID:7i1MtT87.net] 今までモナドという概念がなかったということは 理論計算機科学ってへぼいということでしょうか?
518 名前:デフォルトの名無しさん [2015/06/10(水) 21:22:17.53 ID:vkTp1NO/.net] 表示意味論が提示されてから10年ほどで計算効果一般の モデルをモナドで与えようという発想が提出されてるのだが、 「今までモナドという概念がなかった」とはこれいかに。
519 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 00:21:14.93 ID:hzM+9d/O.net] >>510 基地外は失せろ >>511 ScottからMoggiまで十数年ぐらい? 確かに意外と短かったんだな…
520 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 00:38:40.42 ID:pB1BlG5Q.net] Dana S. Scott. Outline of a mathematical theory of computation. Technical Monograph PRG-2, Oxford University Computing Laboratory, Oxford, England, November 1970. E. Moggi. Computational lambda-calculus and monads. In 4th LICS Conf. IEEE, 1989. この間ほぼ20年かな? いずれにせよ「今までなかった」はないw
521 名前:デフォルトの名無しさん [2015/06/11(木) 00:53:54.36 ID:QUqBUSLw.net] >>512 ,513 1980年代初めには応用可能性が知られてて、 1985年にMoggi含む複数人の「圏論とプログラミング」という ワークショップが開かれてるんで、10年ほど、と計算した。
522 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 01:06:20.81 ID:pB1BlG5Q.net] しらんかった。後者はこれか。 dx.doi.org/10.1007/3-540-17162-2_126 ぱっと見、まだmonadとは書かれていないが。 www.disi.unige.it/person/MoggiE/ftp/lc88.pdf には My thanks to M. Hyland, A. Kock (and other participants to the 1988 Category Theory Meeting in Sussex) for directing me towards the literature on monads relevant to the subject. とあるな。
523 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 03:59:27.71 ID:bOOr6QDN.net] モナドを使うという発想は、C++でテンプレート機構使えばコンパイル時処理できるぞっていう発見と似たようなものではないか そのために生み出されたのでなく元々そこに(見過ごされたまま)あった
524 名前:デフォルトの名無しさん [2015/06/11(木) 09:14:47.16 ID:XjBiZb+W.net] おいおいみんなどうしたんだよw モナドもしょぼい概念だったとそろそろ分かれよw
525 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 09:31:44.59 ID:IhjRP6Ev.net] では次のを頼む
526 名前:デフォルトの名無しさん [2015/06/11(木) 09:44:54.00 ID:XjBiZb+W.net] >>518 しょぼいっていうのは分かってんだな? ScottやMoggiにあこがれてるんじゃまだかなと思うんだが
527 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 10:16:52.40 ID:kAIL8Wh0.net] なんか地獄のミサワっぽい
528 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 10:57:09.42 ID:npoi0wO0.net] 基地外うざいししつこい>bOOr6QDN,XjBiZb+W
529 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 11:01:20.03 ID:PuDMuD0l.net] こういうマウンティングのためだけに知識を得る底辺層が消えない限り プログラマの地位は向上しないだろうな
530 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 12:10:32.39 ID:bAVDGSXl.net] 知識を得なければマウンティングできない現状をどう変える? 少なくとも言えることは、知識ゼロでマウンティングできる最悪の状況は回避してほしい
531 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 12:55:54.03 ID:5wVrf0wy.net] マウンティングした者はLetter to a Young Haskell Enthusiastを1000回音読する刑に処す
532 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 13:47:53.72 ID:MCnGDuRk.net] なぜマウンティングするのか? なぜならそこに山があるからだ
533 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 14:26:29.66 ID:bAVDGSXl.net] 言っておくがLisperが関数型の知識をいくら詰め込んでもドヤ顔できない なぜなら動的型だから ドヤ顔したいやつは静的型に群がっているのであって、関数型はあまり重要ではない
534 名前:デフォルトの名無しさん [2015/06/11(木) 17:04:10.51 ID:QUqBUSLw.net] なんで毛スレのキチガイがOCamlじゃあんくてHaskellのスレに紛れ込んでるんだか。
535 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 18:26:19.74 ID:npoi0wO0.net] >>527 >>481
536 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 19:26:15.71 ID:bOOr6QDN.net] つまりOCamlerは強いけどHaskellerは嘗められてる?
537 名前:デフォルトの名無しさん [2015/06/11(木) 19:45:13.61 ID:yf7swl7Y.net] >>527 キチガイはお前だよ
538 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 20:02:46.43 ID:npoi0wO0.net] >>527 は>>514 でちゃんと有用な情報を提供している >>523 >>519 >>517 >>516 >>511 は情報価値0以下の荒らし。
539 名前:531 mailto:sage [2015/06/11(木) 20:04:50.35 ID:npoi0wO0.net] >>511 じゃない、>>510 な
540 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 21:32:50.42 ID:pgVrj2dA.net] 悪行は善行で相殺できるという前提があるから 犯人とか功労者とかが誰か調べることに拘ってるのか すごい納得してしまった
541 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 22:17:16.64 ID:3DdkuOqE.net] 相殺云々以前に、プログラム板なんだから プログラムの話をまともに出来ない奴は お呼びじゃない、ってだけだろ。
542 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 22:48:19.91 ID:QpuB/nCQ.net] コード書けない連中がこういうときだけでかい面して鬱陶しい
543 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 22:57:20.66 ID:npoi0wO0.net] 相殺も何も基地外は善行0、それ以外の人は悪行0。
544 名前:デフォルトの名無しさん mailto:sage [2015/06/11(木) 23:43:07.37 ID:pgVrj2dA.net] 「プログラムは書く時間より読む時間が長い」なんて言われたら プログラムを書く話なんてしなくなるでしょ 読んだ人の感想とかそれに対しどう返答するかみたいな事ばかり考えるようになる
545 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 00:12:07.74 ID:lWqlv+DR.net] 全くならない。
546 名前:デフォルトの名無しさん [2015/06/12(金) 00:48:31.06 ID:de1HjIPa.net] このスレ、プログラム板でもかなり書き込みが多い方なんだけど、 その割にHaskellで作ったアプリが世の中にないのは、 このスレに書き込んでいる人間の大半は結局喋っているだけで、ちっとも作っていないから? それとも、ごく少数の口数の多い人間がこのスレに常駐しているということか?
547 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 01:09:28.05 ID:kpQWF1y9.net] みんな不安なんだよ
548 名前:デフォルトの名無しさん [2015/06/12(金) 01:11:49.35 ID:ewifs/WC.net] 「アプリ」でどういうものを指しているのかによるだろ。
549 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 01:14:23.65 ID:3H6DdNeR.net] スレが伸びてるのは単に基地外が粘着してるから。 アプリは https://wiki.haskell.org/Haskell_in_practice とかあるし、 外資もNTTデータも金融とかclosedなので外に出ないの
550 名前:熨スいと思うが、 それでもC++とかJavaとかに比べれば実験的な言語だから少ないな…… [] [ここ壊れてます]
551 名前:デフォルトの名無しさん [2015/06/12(金) 01:29:41.08 ID:ewifs/WC.net] スクリプト言語の代わりに普段使いしてる感じだし、 なによりParsecのお蔭で色々とはかどるのでなあ。 わりと最近3000行程度のGUIのツールを書いたが、 他所で役に立つようなものでもないので、公開するとか そういうことも特にない。
552 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 07:19:43.33 ID:1CtSfxjI.net] 書くだけならスクリプト言語で十分だが読めない保守できない等の苦情が予想されるので じゃあ静的型付けなら読めるのか実験したい
553 名前:デフォルトの名無しさん [2015/06/12(金) 10:25:49.56 ID:ppIf3q9e.net] NTTデータを入れると、一気にカスっぽく見える。 外資と金融の間に、さりげなくNTTデータを入れるセンスが絶妙。
554 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 11:52:15.09 ID:lWqlv+DR.net] >>545 https://www.google.co.jp/search?q=ntt%E3%83%87%E3%83%BC%E3%82%BF+haskell こういう世界でどうなるか、少なくとも実験としてはすごいと思う。 数理システムも買収したし。
555 名前:546 mailto:sage [2015/06/12(金) 11:54:37.53 ID:lWqlv+DR.net] iOSのSafari、リンクがまともにコピペできねーorz >>546 は「NTTデータ Haskell」の検索結果な
556 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 12:00:11.55 ID:nIxAy/au.net] NTTデータって人身売買の会社じゃなかったの?
557 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 12:08:38.69 ID:lWqlv+DR.net] 前はHaskellでインドに外注とか言ってて いろんな意味ですげーとか思ったが 最近はどうなん?
558 名前:デフォルトの名無しさん mailto:sage [2015/06/12(金) 12:26:32.05 ID:bMq/lwLt.net] ( ゜Д゜)マジカヨ
559 名前:デフォルトの名無しさん [2015/06/12(金) 12:46:55.72 ID:ppIf3q9e.net] 年金のシステム作ってたのもNTTデータだろ? NTTデータって、空き巣に絶対に破られない鍵を設置して、 鍵を閉め忘れて出かけるような感じだよね。
560 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 04:35:41.57 ID:VBb4KC+k.net] あれもうシステムの問題じゃないよなあ フリーメールで届いた添付.exeダブルクリックする連中とかソーシャルエンジニアリング以前の問題
561 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 10:21:50.46 ID:+dSTwJzi.net] そんなに蒸し返したいなら言わせてもらう ユーザが多数で開発者が少数なら、ユーザのせいにするのは非合理的という思想があった その合理主義の結果がこれ それとも蒸し返す意図がなくても自然に繰り返されるパターンなのか
562 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 11:17:16.80 ID:kXcfUXOo.net] 結果がこれ ってどれ?
563 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 11:22:32.93 ID:fmObtMJM.net] はすけるスレだからハスケルの話してね
564 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 12:05:27.26 ID:+dSTwJzi.net] 関数型言語の仕様は意図的かそれとも自然にできたか 衒学的な意図がないならないと正確に説明できれば普及しやすいのでは
565 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 12:20:08.70 ID:RjEVnwaL.net] >>556 普及するのにそんな御大層なものは要らんよ。 必要なのは次の3つのみ。 ・馬鹿でも簡単に始められて、扱いやすいGUIアプリ用フレームワーク ・そのフレームワークと連動するRAD統合開発環境 ・数多くのGUIアプリのサンプル これに加えてスマホアプリも簡単に作れれば尚良い。 逆に、Haskell というアプリ開発環境はこれらが無いから流行らない。
566 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 13:26:03.85 ID:+dSTwJzi.net] >>557 VBやObj-Cが普及した理由はそれだが長続きしない それらを終わコンにする圧力があった MSやAppleでも逆らえない
567 名前:デフォルトの名無しさん [2015/06/13(土) 14:42:11.49 ID:gPoekrm5.net] バカに流行る必要なんざ微塵もないだろ。 環境が悪化するだけだわ。
568 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 14:43:22.99 ID:CpRxCXBF.net] >>559 みたいなバカが寄り付いている時点で確かに終わってるな
569 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 14:55:15.57 ID:fmObtMJM.net] 表面じゃなくて内容の話を希望な
570 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 16:08:55.81 ID:U7fz6F5N.net] 「その数式、プログラムできますか?」という本を立ち読みしたら 圏論とSTLがどーたらみたいな謎文章が目に入って困惑している "圏論 STL"でググれば当該箇所Google Booksで読めるんですけどこれってまともなんですかね? Haskell関係ないけど圏論がらみということで一つ
571 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 16:55:46.04 ID:KIURMs4/.net] >>556 何故、普及に拘るの?
572 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 17:04:10.62 ID:oBvXXQ5V.net] >>562 見たけど、確かに意味不明だ。訳の問題かと思ったが、原文も似たようなもんだな……。 強いて言えば原文の"categorical theories"が和訳では勝手に「圏論(categorical theory)」になってたり、 "not computationally isomorphic"のnotが訳し漏れで「計算上は同型」になってたりと訳の問題も大きくて、 原文のほうは好意的に解釈すればまだ理解可能だけど。
573 名前:564 mailto:sage [2015/06/13(土) 17:09:54.96 ID:oBvXXQ5V.net] (原文も「好意的に解釈すれば理解可能」なだけで、 For a long time, people believed that only categorical theories were useful for programming 云々は聞いたこともないので違う並行宇宙の話としか思えないw)
574 名前:デフォルトの名無しさん [2015/06/13(土) 18:44:09.66 ID:P5CgqW+9.net] 普及しないと、ゴミみたいな知識に終わるからだ。 普及させたくない層もいるけど、ごく一部だろう。 普及すると、割を食うのはトップ層だからな。
575 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 20:11:39.38 ID:sBN7IsLr.net] category theory(圏論)とcategorical theoryは別物なのかw 誤訳するのもわからなくもない (notの訳し漏れは論外) https://en.wikipedia.org/wiki/Categorical_theory > "Categorical theory" redirects here. Not to be confused with Category Theory.
576 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 20:13:41.36 ID:xQVzvj+B.net] >>566 俺は総合的には普及してほしくないとは思わんが、 普及するとゴミが増えるのも事実
577 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 20:21:22.10 ID:ZkFtP6do.net] >>558 そうは言っても、そうとう長続きしてきたような気がするが。 >>557 は普及する要因ではあってもオワコン化する原因ではないんじゃないか? それとも、>>557 のせいでオワコン化が早まったということ? 何れにしても、Haskell はその歴史は長いくせに、 アプリ開発という点では未だに始まってすらいないよな。 方法論の研究は行われてるのかな?
578 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 20:43:48.20 ID:jKGoCo7L.net] なにか適当な GUI のからくりはないものか
579 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 21:00:56.80 ID:EFCkVZsH.net] GUI開発環境はともかく、「方法論」は手続き型やオブジェクト志向でも それこそゴミしかないと思うんだが。
580 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 21:18:01.62 ID:ZkFtP6do.net] >>571 まだまだゴミだと評価しようが、 その方法論で実際に数多くの多種多様なアプリが作られてる。 これからも現場で起きた問題に対して改善案が提案されていくと思う。 ... --> 問題 --> 提案 --> 問題 --> ... というサイクルができてる。 で、Haskell(関数型)はどうなのよ、という話。 一歩引いた立ち位置の研究者から提案された方法論が現場で使われ始めた段階なのか、 それとも、そういう方法論すらまだ無い状態なのか。
581 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 21:19:33.57 ID:jKGoCo7L.net] モナディウスはどうしているのだろう?
582 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 21:22:43.08 ID:SsnyuIbc.net] 単体テストは関数的なほうが副作用ないから簡単だよな。 ミクロなデザインパターンとかも、そもそも不要か自明になるってよく言われてるとは思う。 マクロな開発プロセスは普通と変わらないんじゃない?
583 名前:デフォルトの名無しさん mailto:sage [2015/06/13(土) 21:32:42.37 ID:ZkFtP6do.net] >>573 あれは、取りあえず作ってみただけで、その後が続かなかったよね。 あれを叩き台にして色々議論されることもなく、 Haskell でこんなこともできるんだと言われて、それで終わり。
584 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 00:34:08.79 ID:RWIDraJH.net] モナディウスって名前だけで方法論がわかる 他のアプリを真似すればいいんだろ
585 名前:デフォルトの名無しさん [2015/06/14(日) 08:27:51.02 ID:OtrhG80a.net] スーパートップ層 普及を望んでいる トップ層 普及を望んでいない 中堅層 普及を望んでいる 下位層 普及を望んでいないか、どっちでも良い
586 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 09:07:11.87 ID:kkYM1O8c.net] >>577 proof it!
587 名前:デフォルトの名無しさん [2015/06/14(日) 10:09:03.75 ID:Pjcz0hD2.net] >>573 コード読めないの?馬鹿なの?
588 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 10:32:05.79 ID:SL/F9php.net] プログラムなんてのはツールなんで 用途に応じた使い方ができればそれでいい。 一番売れるのは安くてシンプルな電卓だろうが 使う用途や人間を選ぶ高機能な関数電卓や、 ソロバンや計算尺にもそれぞれ需要がある。 計算尺振り回して「使い方が分からん。 こんなモンはゴミだ」と喚いても メーカーもユーザも苦笑か失笑しか出来ん。
589 名前:デフォルトの名無しさん mailto:sage [2015/06/14(日) 15:29:34.67 ID:L5Y5b9kK.net] sm26445256
590 名前:デフォルトの名無しさん mailto:sage [2015/06/15(月) 02:53:59.25 ID:LOIdsEui.net] 基地外に愛されてしまうのもHaskellの業の深いところだ
591 名前:デフォルトの名無しさん mailto:sage [2015/06/15(月) 07:50:18.85 ID:Hdxb2Sdn.net] 基地外を呼び寄せる言語‥どういうところがそうなんだろう? prolog とかにはなぜ寄らないのか?
592 名前:デフォルトの名無しさん mailto:sage [2015/06/15(月) 08:34:53.82 ID:9GGhHIhr.net] 一言で言えば、Haskell使える俺カッコイイみたいな言語だから
593 名前:デフォルトの名無しさん mailto:sage [2015/06/15(月) 09:14:23.05 ID:IHPL8idc.net] 俺カッコイイとかいう常套句に、異常さを伝える力はない まあオオカミ少年みたいに常に言い続ければそのうち当たるわな
594 名前:デフォルトの名無しさん mailto:sage [2015/06/15(月) 22:02:16.43 ID:vBLMZKIz.net] Haskell使える俺TUEEEEEEE
595 名前:デフォルトの名無しさん mailto:sage [2015/06/15(月) 22:04:05.10 ID:Hdxb2Sdn.net] lisp/scheme じゃないのはどうして?
596 名前:デフォルトの名無しさん [2015/06/15(月) 23:00:49.05 ID:q35vzvCm.net] 田中死ね ボレロレイプされろ
597 名前:デフォルトの名無しさん [2015/06/16(火) 00:19:10.77 ID:WwZ8EXS4.net] >>580 いまどき計算尺はごみでしょ。
598 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 01:06:35.60 ID:nO6QHrwV.net] >>589 需要があるから生産も販売もされてる訳で。
599 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 08:02:12.01 ID:4c+taF0x.net] 言いたいことはあってると思うしわかりやすいが さすがにHaskellは計算尺じゃないだろw
600 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 21:51:02.26 ID:CcjDjnqw.net] まあ計算尺もわからないような奴がHaskell学んでもたいした事できないだろう ところで計算尺ってなんだ
601 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 22:34:00.92 ID:0ci32UBo.net] 計算尺、今ではほとんど使わないんだろうけど、あの仕組みを考えた人は天才だと思う
602 名前:デフォルトの名無しさん mailto:sage [2015/06/16(火) 23:17:45.09 ID:MDYhP0lu.net] ghciのコマンドのヘルプみてたんだが、なんでこれコンポーザブルになってないんだ? :browse や :info で得た情報を他のコマンドに渡して処理できれば便利やん。 っていうか、:list hoge でhogeのソースを見れるのに:edit hogeは無理なのか... いちいちファイル名を探してこなきゃならんのは面倒だよ。
603 名前:デフォルトの名無しさん mailto:sage [2015/06/17(水) 00:38:11.14 ID:iYY4vjEN.net] シェルが便利すぎてCを書く必要があまりない某OSで型が厳格でない言語が流行したから 型のためには便利なコマンドを規制するべきと判断したのではないだろうか
604 名前:デフォルトの名無しさん mailto:sage [2015/06/17(水) 06:02:52.89 ID:UUD++cQ/.net] reduce を map で実装して何か意味あるの?
605 名前:デフォルトの名無しさん mailto:sage [2015/06/17(水) 08:06:07.46 ID:iYY4vjEN.net] 敵が来てから武器を作ると間に合わないという理由で、使わない無駄な武器を作ってる
606 名前:デフォルトの名無しさん mailto:sage [2015/06/17(水) 08:28:31.12 ID:6y+hRJoT.net] reduceとmapを持ってなきゃいけない型クラスのminimal complete definisionsに使えるかも
607 名前:デフォルトの名無しさん mailto:sage [2015/06/17(水) 09:11:03.75 ID:0QSt0PBy.net] 普通にreduceでmapを実装すればいいやん
608 名前:デフォルトの名無しさん [2015/06/17(水) 11:54:20.02 ID:FwmlJS0O.net] >>598 Control.Functor.Zipの下に来なきゃいけなくなるから超不便だと思う。
609 名前:デフォルトの名無しさん mailto:sage [2015/06/18(木) 11:51:58.85 ID:zIn+ti7/.net] 「b を a で実装可能」という関係は 反対称律「a <= b かつ b <= a ならば a = b」を満たさない
610 名前:デフォルトの名無しさん [2015/06/19(金) 15:33:03.81 ID:dN77ILvV.net] ,.-―: ̄`ー::::::::::、 /::::::::::::.::::::::::::::::::::::::::::`::、、 /::::::::::::::::::::::::::::::::::::::::::::::::::::::`、 l::::::::::::::::::::::::::::::::::::::::;':l:::::::::::\::l l:::::::::::::::::::::::::::::::::,,::::::::;-,:,::::::::::::::::l l::::::::::::::::,_,.::::,';::::::;:::::: :: l ::::::::::::::l l::::::::::/-/:::/-ニ,.::::/=,./::::::::::l ヽ:::: ´、ひ> ;: l .<ひ>' 、::::::::/ ヽ:::::  ̄ .)::; l  ̄ l::::/ 、:::::.. /:::; .,-、 l:::/、 :::::::: ゝヽ- ー' 、 l::/, ,:、:: / ,--、,-.、_ l / ,.:':'゙'゙'゙:゙'゙':';. 、::、 `ー ̄-' / r゙ ,.: :;;;:: : : : 、::ヽ /: | : ::::~';::--ー'ー-----ーー;;:'゙ .: :` ‐- 、 | ,i ::::::::::::::::::::::::::::::: ::: :ヾ i r' ::::::::::::::::: : : :::::: ::::: ::::. . / | :::::::::: : : : : ::: :: :: イ i : : ::::::::::: : : ::::::: : | | ,.;イ-- ., ,... -' i i ,.;':/ ゙'ー-.,_ i ,.イ:: / .i:::: /:/  ̄i / ゙i | │:: ノ::/ | i | | r':: イ:::::i゙ | | i | |:: | ヽ '-., ヽ 〈 ヽ ヽ., i, , '-, ゙'ー'ー' ヽ、`,ー、 `'ー'ー'
611 名前:デフォルトの名無しさん mailto:sage [2015/06/19(金) 20:00:49.31 ID:rvqvJJVS.net] 岡部犬ってか
612 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 14:34:33.88 ID:yL+fCFF6.net] ポイントフリー信者はmapが1変数関数かもしれないと思っている g = map f 引数 :: a -> b 結果 :: [a] -> [b] しかし決め付けやレッテル貼りを嫌うのでmapが2変数関数である可能性も否定しない 彼らにとって引数を書くことはレッテルを貼ることに等しい
613 名前:デフォルトの名無しさん [2015/06/21(日) 20:14:27.96 ID:HwEzsZwl.net] 意味ワカンネ つうかポイントフリー信者がどうだろうが Haskellにはそもそも1変数関数しかないのだが
614 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 20:18:32.21 ID:RBHwsW1q.net] >>605 >Haskellにはそもそも1変数関数しかないのだが どういう意味?
615 名前:デフォルトの名無しさん [2015/06/21(日) 20:33:23.95 ID:HwEzsZwl.net] Haskellではa->b->c は常にa->(b->c)であって (nullary constructorをとりあえず脇に措けば) 普通の関数のアリティは本質的に1だけだ。
616 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 21:08:54.24 ID:pK1SDj/K.net] たしかすごHにもそんな説明あったな
617 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 21:12:32.01 ID:7XsQ/1hl.net] 607を補足すると、 f :: X -> Y -> Z は 「X型変数とY型変数を取ってZ型の値を返す関数」 というより 「X型変数を一つ取って『Y型変数を一つ取ってZ型の値を返す関数』を返す関数」 ということだな。 言葉で書くと却ってわかりづらいな。
618 名前:デフォルトの名無しさん [2015/06/21(日) 21:12:49.77 ID:HwEzsZwl.net] 正確ではなかったので訂正しておく。 関数型の値としての関数は常に1引数だ。 データ構築子はそもそもこの意味の関数ではない。
619 名前:デフォルトの名無しさん [2015/06/21(日) 21:14:20.58 ID:HwEzsZwl.net] あと、関数は常に1引数なのでHaskellにカリー化はそもそも存在しない。
620 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 21:22:10.14 ID:7XsQ/1hl.net] >>611 そのように言われてしまった curry :: ((a, b) -> c) -> a -> b -> c さんの気持ちを答えよ(140字)
621 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 21:24:27.97 ID:Sh7VBIsF.net] (それは雰囲気一緒なのでそういう名前になってるのでいわゆるカリー化とはちょっと別では)
622 名前:デフォルトの名無しさん [2015/06/21(日) 21:40:32.89 ID:HwEzsZwl.net] >>612 それはカリー化でもなんでもない。 見ての通り (a,b) -> c のアリティは1だ。
623 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 21:42:45.93 ID:7XsQ/1hl.net] ・多引数関数が存在するかどうか、の議論の前に「多引数関数とは何か」を定義したほうがいい。 ・立場や考えた方によって「多引数関数とは何か」は異なりうる。 ・一つの答えは「タプルを引数に持つ関数」 ・「タプルという一つの引数を持ってるだけですよね?」というツッコミ。 よーく気をつけないと「多引数関数とは何か」 という話を蒸し返してしまう。
624 名前:デフォルトの名無しさん [2015/06/21(日) 21:51:01.56 ID:HwEzsZwl.net] Haskellの関数型構築子(->)の性質から関数型の値としての 関数の引数は常に(->)の左に来る型なんだからな。 タプルを引数にとるのが多引数だと言い出せば リストを引数にとるのは可変長引数だということになる。 後者がおかしいと思うなら前者もおかしい。
625 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 22:16:31.58 ID:X7jEdUgs.net] Text.Printf 「呼んだ?」
626 名前:デフォルトの名無しさん mailto:sage [2015/06/21(日) 22:29:13.88 ID:yL+fCFF6.net] mapは単項演算を可変長引数にする reduceは二項演算を可変長引数にする というのは別におかしくない Haskellにこだわらない人ならそう思う可能性がある
627 名前:デフォルトの名無しさん [2015/06/22(月) 00:13:49.02 ID:egF2isgn.net] ,.-―: ̄`ー::::::::::、 /::::::::::::.::::::::::::::::::::::::::::`::、、 /::::::::::::::::::::::::::::::::::::::::::::::::::::::`、 l::::::::::::::::::::::::::::::::::::::::;':l:::::::::::\::l l:::::::::::::::::::::::::::::::::,,::::::::;-,:,::::::::::::::::l l::::::::::::::::,_,.::::,';::::::;:::::: :: l ::::::::::::::l l::::::::::/-/:::/-ニ,.::::/=,./::::::::::l ヽ:::: ´、ひ> ;: l .<ひ>' 、::::::::/ ヽ:::::  ̄ .)::; l  ̄ l::::/ < 排便ダン 、:::::.. /:::; .,-、 l:::/、 ,―:::::::: ゝヽ- ー' 、 l::/,、ヽ l,、,、,,:、:: / ,--、,-.、_ l /::::::,、,、l l,、,、,、,、,、::、 `ー ̄-' /:::::::::::,、,、l l,、,、,、,、,、,、::ヽ /::::::::、,、,、,、,ノ:\ /⌒\〆', `  ̄ ´ ゝ/⌒\ / ノつ\ ・ ・ /⊂ ヽ! o0○ノ / 3 \ (::::⌒ヽ / とノ\ ヽ○0o ( /、_ノ\ Y `(_、_) / \´ )゚ \_) `ヽ : :;;*:; : : : | (_ノ 人__;;:;;、___ノ ヽヽ ヽヽ ;:;;:;;:;,, ──┐ | | ──┐ | | ∬ ;;:;::.;::.::;::..:;:..: ∬ / | | /. | | ・〜 ;::;.:;:;:;:;:.:;:.:::.;:;:;.:.:.: ノ ノ ┐ ノ ノ ┐ ∬;;;:::;;;:;:.:;:.::.:;;.:.;.:;.:; ∬ ┴ ヽヽ ┴ :"
628 名前:デフォルトの名無しさん [2015/06/22(月) 07:30:14.32 ID:7ItaFFjL.net] 不毛な議論はやめろ
629 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 07:38:37.78 ID:8relXNjB.net] 毛の壁だから不毛な訳ない
630 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 08:33:39.76 ID:jkkSdEVt.net] 不毛な議論はやめて早く契約をという きみたちはいつもそうだ
631 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 10:49:06.51 ID:HczZ6Mad.net] >>607 有り体に言えばそうなるわな
632 名前:デフォルトの名無しさん [2015/06/22(月) 16:22:57.80 ID:uDj89vD5.net] ,.-―: ̄`ー::::::::::、 /::::::::::::.::::::::::::::::::::::::::::`::、、 /::::::::::::::::::::::::::::::::::::::::::::::::::::::`、 l::::::::::::::::::::::::::::::::::::::::;':l:::::::::::\::l l:::::::::::::::::::::::::::::::::,,::::::::;-,:,::::::::::::::::l l::::::::::::::::,_,.::::,';::::::;:::::: :: l ::::::::::::::l l::::::::::/-/:::/-ニ,.::::/=,./::::::::::l ヽ:::: ´、ひ> ;: l .<ひ>' 、::::::::/ ヽ:::::  ̄ .)::; l  ̄ l::::/ 、:::::.. /:::; .,-、 l:::/、 :::::::: ゝヽ- ー' 、 l::/, ,:、:: / ,--、,-.、_ l / 、::、 `ー ̄-' / 、::ヽ /: /´⌒´ヽゝ ── 'ヽ⌒ヽ / ィ , ヽ , )` `ヽ / ノ^ ー '` ー 'ヽ ゙i .. ノ ,,,ノ Y´゙ ) ( < | ! / ヽ_ \ ノ_/ ヽ、__ ヽ.ー @ ノ ソ、 〈J .〉 ヾ、.::;;;;;;::.ノ |ヽ-´ /"" ;ミシミッ .| レ .イ、_∪ノ .リ .,ゝ ,ノ | ' ヽ ノ / ` レリ i´ リ i / `、 i' 〉 イ 〉 | / ::| (_ヽ \、 (。mnノ `ヽ、_nm
633 名前:デフォルトの名無しさん mailto:sage [2015/06/22(月) 20:02:55.77 ID:yB0CTLEJ.net] 毛の壁を風化させない勢、なんなんですかね
634 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 02:22:17.45 ID:wiF7wKM1.net] rubyで言うところのcase文はhaskellでどう書くとスマートですか? case x #長さ1の文字列とする when 'a'..'z' ... when '0'..'9' ... when '#' ... else ... end
635 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 05:33:12.62 ID:EWNumgnc.net] 引数の性質で場合分けするなら素直なのはガードだけど もっとかっこいいやり方はあるかも f :: Char -> a f x | x `elem` ['a'..'z'] = | x `elem` ['0'..'9'] = | otherwise =
636 名前:デフォルトの名無しさん [2015/06/23(火) 11:17:40.69 ID:30kOauSN.net] reduce関数やrange関数やmap関数は、 命令型のループでしか書けません。なぜならば、ノイマン型コンピュータという ハードウェアは究極的には命令型でしか動作しないからです。 関数型の機械語なんて存在しません。
637 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 12:56:24.51 ID:HcqKhimH.net] オブジェクト指向言語の機械語も存在しないけどな。 究極的には人間は原子でてきてますとか言われてふーんとかはーとかしか思わんし 目の前
638 名前:フ人が美人かどうかは原子関係ないすね。 [] [ここ壊れてます]
639 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 13:34:07.31 ID:DUXK3D31.net] >>628 を見てこれを思い出した↓ >あのさー、「二次元はただの絵」なんて言葉には何の意味もないわけよ。当たり前すぎる。 >ただの絵って、そりゃ絵だよ。そんなの誰にでもわかるって。 >これは言い換えるとね、例えば友達が彼女の写真を見せてくれたとして、 >「これはただのインクの集合だ」と言ってるのと同じなわけよ。 >もっと言うと、友達の恋人を指差して、「こいつはただのタンパク質だ」と言ってるのと同じなわけよ。 >別に間違ってないよ。写真はインクだし、人間はタンパク質だ。でもそれがなんだっての? >インクだから感情を抱くのは間違いだ、タンパク質だから好きになるのは間違いだ、とでも言うの? >それはちょっとバカすぎるね。バカすぎる。「二次元はただの絵」ってのはそういうのと同じなんだよ。 >好きになるのは人格としての、存在としての彼女だろうが。物理的構造なんてどうだっていいんだよ。 >そんな当たり前のこともわからないわけ?
640 名前:デフォルトの名無しさん [2015/06/23(火) 13:47:23.60 ID:6v7jQlnd.net] ノイマン型じゃないアーキテクチュアとか普通に存在するし、 FPGAのお蔭で個人レベルでもできるんだが。
641 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 14:35:28.11 ID:GZlJHPMK.net] まあ関数型言語が機械語のようなもので定義されることが多いのは事実だよね あとは 「定義の循環なんて存在してはならない」 という思い込みを否定できるかどうか それさえ否定できれば、逆に機械語を関数型で定義する可能性も理解できると思う
642 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 14:49:11.65 ID:rMQdQ9WV.net] import Data.Char で isAlpha とかが使えるからちょっとだけ楽になるね(構造としての格好良さではない)
643 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 14:50:45.63 ID:5/w+bsnn.net] >>628 は毛の壁ブログのコピペ kenokabe-techwriting.blogspot.jp/2015/04/amazon_28.html
644 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 18:05:36.94 ID:x4Ozc/Jn.net] エロ漫画でヌいてる奴に、「それむっさいオッサンが描いた絵だよ」って言って萎えさせる奴いるけどさ、 むっさいオッサンが生み出したものでヌいておかしいっていうなら、そのむっさいオッサンに可愛い娘さんがいたらセックスしたいと思わないのかね
645 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 19:55:42.17 ID:909KpOvq.net] 定義が循環しちゃまずいだろ
646 名前:デフォルトの名無しさん [2015/06/23(火) 21:15:50.96 ID:6v7jQlnd.net] >>632 >まあ関数型言語が機械語のようなもので定義されることが多いのは事実だよね なにいってんだか意味がわからん。 関数型言語の意味論が機械語で与えられた例なんかないだろ。
647 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 21:17:42.47 ID:AaIPqvR+.net] 多分定義と実装取り違えてる
648 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 21:37:51.41 ID:rcOEv9Ao.net] ひょっとして(e?)BNFのことを言ってるのかな?
649 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 23:28:11.76 ID:GZlJHPMK.net] 仕様書に未定義とか書いてあるのは 完全な定義は実装で決まるという意味なんじゃないの
650 名前:デフォルトの名無しさん mailto:sage [2015/06/23(火) 23:35:23.41 ID:FjdLJNiv.net] その実装にはどんな非決定的な穴があってもいいんだよ
651 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 00:16:40.45 ID:KkHlevhV.net] >>640 それは実装依存で未定義とは区別することが多い
652 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 00:26:39.98 ID:MR5fwWu8.net] 実装が定義、ソース読め ってことじゃないの
653 名前:デフォルトの名無しさん [2015/06/24(水) 01:16:05.07 ID:k2PpIK+f.net] >>643 そんな(少し前までの)Rubyみたいなこと言われても。 >>640 未定義っつうのは文字通り未定義。 言語仕様にないので、なにが起きようが関知しない。 未定義動作の結果オレの財布が空になっても富士山が噴火しても構わない。 というか、もっと正確に言えば、未定義部分は言語仕様がないのだから そこがどうなっていようが、それはその言語の「実装」とすら言えない。
654 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 02:27:11.04 ID:zaWMLH1h.net] >>640 (まともな言語における)未定義ってのは、その部分については、各実装によって内部表現が異なっても構わないという明言だよ 要は速度と効率のために各ベンダに独自の最適化が許される、意図的に定義されない部分 そういう未定義部分に依存しないコードを書くのはプログラマの責任
655 名前:デフォルトの名無しさん [2015/06/24(水) 02:58:03.53 ID:k2PpIK+f.net] そりゃ意味と機能の問題を取り違えてる。 未定義動作を許すことが何の役に立つかと未定義動作そのものが何かは別の問題だ。
656 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 07:27:51.62 ID:uN9f53jR.net] 現実に起こる問題といえば 未定義の部分はコンパイラ作成時点でテストして保証されてないから 出力が一意になるかわからんし最悪実行不可能なファイルが生成されるかもしれないってくらいか
657 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 07:37:20.43 ID:NJ59k6EW.net] >どんな非決定的な穴があってもいい >オレの財布が空になっても富士山が噴火しても構わない 実装がどうなるか予知できないと書いてあるだけだが 「予知能力がない」ではなく「全知全能の筆者が許可した」と解釈すると大変な事になる
658 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 11:36:01.73 ID:Dk9G0+2n.net] 数学で 0以外の実数を0で割れば解なし 0を0で割れば未定義 みたいな
659 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 13:33:31.02 ID:q/iymKMR.net] それはどっちも未定義
660 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 13:41:36.12 ID:RcaJrYdV.net] 仕様が未定義ならどんな実装してもかまわないので「0を0で割ると富士山を噴火させる」実装もOK というだけ。
661 名前:デフォルトの名無しさん [2015/06/24(水) 15:06:59.29 ID:4h3P/eVf.net] twilog.org/ohagiya/search?word=UCLA&ao=a
662 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 18:30:23.37 ID:jBd8hVQL.net] 非決定性プログラミングしたい場合 Lisp系だとambや継続使って解を1つみつけて終了だけど モナド使うと全ての解を列挙できるってことでいいのかな
663 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 21:39:12.60 ID:RcaJrYdV.net] >>653 わりとマジであなたが言ってることイミフ。 「非決定性」だとか「継続」だとか難しげな言葉を振りかざすのではなく 基礎からきちんと学ぶことをおすすめします。
664 名前:デフォルトの名無しさん mailto:sage [2015/06/24(水) 22:58:58.61 ID:+CIvGoel.net] >>653 妙な思い込みをしているようだけど… グレアムのOn Lispに、簡易Prologみたいなのを実装する非決定性プログラミングの例が載ってるから、 ちょっと勉強してみたら?
665 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 01:30:55.42 ID:L5oPYlD8.net] 二重ループの内側で無限に列挙してしまったら外側は1個めでフリーズする Haskell使ってもこの問題はなくならない
666 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 01:49:40.68 ID:tWs5pbMG.net] それ、ただの単純ループですやん 非決定性ともバックトラックとも遅延評価とも関係ない…
667 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 08:02:56.67 ID:L5oPYlD8.net] というか、ただの問題だから 出題範囲とか関係ない
668 名前:デフォルトの名無しさん [2015/06/25(木) 09:34:06.79 ID:En38UG6V.net] 質問なのですが、HASKELLはJAVASCRIPTと比べてどのぐらい力強いですか?
669 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 10:42:57.71 ID:GMFUAARU.net] >>659 (haskell の戦闘力は) 53万です
670 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 12:46:25.61 ID:jSlSTYLT.net] CPUヘビーなことは向かないなんて泣き言いわない
671 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 13:31:24.59 ID:X9iBWgn+.net] >>659 JavaScriptがフリーザだとしたら、Haskellは18号くらい
672 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 16:41:37.97 ID:YBkNncXP.net] 以下の関数をCPSに書き換えよ。 とか、その後の難しい話の下準備の為に修行できるドリルみたいなサイトありませんか? なるべく解答付きで。
673 名前:デフォルトの名無しさん [2015/06/25(木) 17:09:47.33 ID:B9JLKsO8.net] >>663 qiita 7shi で検索。
674 名前:デフォルトの名無しさん [2015/06/25(木) 17:20:28.66 ID:B9JLKsO8.net] あ、あとCPSは階乗とフィボナッチのCPS版を見つけてきて、 fac(3)とかfib(4)あたりを手で簡約して見ると原理がわかる。 いったん理解すれば、あとは殆ど機械的に変換できるようになるよ。 そういや最初にCPS理解したときはその後しばらくCPS猿みたいなコード書いてたな……
675 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 17:32:34.99 ID:5pnqx1ov.net] でも a -> b -> c を a -> b -> m c に書き換えるのは arityが見えるとかいう意味不明な能力がないとできないよね
676 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 21:38:45.58 ID:YBkNncXP.net] stack がパッケージの依存地獄を解決すると聞いて駆けつけました!
677 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 21:40:43.48 ID:YBkNncXP.net] >>664 頑張ります
678 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 23:22:04.84 ID:LfFLypOB.net] Freeモナドを上手に役立ててる例、ってなんかないですか?
679 名前:デフォルトの名無しさん mailto:sage [2015/06/25(木) 23:33:50.49 ID:eM2m5jCT.net] 不便だと思うところに役立てればいいんじゃないかな
680 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 00:28:21.26 ID:bFSe+PPP.net] >>670 料理のレシピのためのミニ言語、は楽しくてよかったんですが、便利か、実用的か、っていうとそうでもない感じがしました。 モナド的側面、つまり、前のコマンドの結果に応じて後に続くコマンドを変えられる、って性質を有効利用できれば良い、と思うのですが、いい案が浮かばず… たまごを焼きすぎたらスクランブルエッグは諦めてたまご焼きにする。 うーん
681 名前:デフォルトの名無しさん [2015/06/26(金) 01:05:51.23 ID:sGcqyMBf.net] Freeモナドが使えそうなところでは大抵の場合、 finally taglessな表現/Symanticsを使う方がいい。
682 名前:デフォルトの名無しさん mailto:sage [2015/06/26(金) 20:39:02.22 ID:hymME7nU.net] なんとなくわかった returnとjoinを作れないまたは作れるが使いたくない場合にFreeモナドを使うんだろ
683 名前:デフォルトの名無しさん [2015/06/28(日) 07:58:01.92 ID:UfM5xTqU.net] ほざけ無能ども
684 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 09:29:10.20 ID:PsA9Isd2.net] >>674 どうした突然。何かつらいことでもあったのか。
685 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 14:22:33.44 ID:eK2mTTNw.net] HaskellerはOCamlerを見下してますか?
686 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 14:45:38.67 ID:oAeIj0m7.net] HaskellerかつOCamlerですが何か?
687 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 15:08:18.01 ID:CsAfdxFY.net] オーキャメルってすごいの?
688 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 15:45:29.76 ID:sCkqyjMf.net] ほとんど同じ 型が違うとか批判ばかりで代案を出せないコンパイラと、そいつに逆らえないプログラマ 全然すごくない
689 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 17:40:06.78 ID:A43RH85D.net] 開発環境は、その上で作られた成果物と、 作るのに使ったリソース(人、時間、金など)で比較すべき まぁ、たいした成果物が挙げられないようでは話にならんがな
690 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 18:22:42.20 ID:sCkqyjMf.net] どうせそう言われるだろうと思って 言われても平気な言語を二つも三つも覚えるんだよね 観賞用、保存用、予備みたいなあれ
691 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 18:45:49.13 ID:TzgnuxBg.net] 寄らば大樹の陰(笑)
692 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 20:48:17.29 ID:sCkqyjMf.net] 同じのを三個買ってきたのに使用頻度のデータを取るのは時間と金の無駄だろ
693 名前:デフォルトの名無しさん [2015/06/28(日) 22:57:53.15 ID:GoQYkhEF.net] >>677 あなたはHaskellを知ってるOcamlerです。Haskellerではありません。
694 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 23:08:27.40 ID:PermaxaH.net] 宗教かよ
695 名前:デフォルトの名無しさん mailto:sage [2015/06/28(日) 23:24:45.18 ID:CsAfdxFY.net] じゃあ、ここでEmacsとVimの雌雄を決しようぜ
696 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 05:59:50.21 ID:Qi5/2Z+9.net] Ocamler = 岡村
697 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 06:43:23.70 ID:brwnweVx.net] >>684 調査する側が答えを決めてるなら世論調査とかビッグデータとか無意味だな
698 名前:デフォルトの名無しさん [2015/06/29(月) 10:57:15.25 ID:8+Jbzv8W.net] >>679 >型が違うとか批判ばかりで代案を出せないコンパイラと、そいつに逆らえないプログラマ >全然すごくない 才能を感じるw
699 名前:デフォルトの名無しさん [2015/06/29(月) 20:28:54.62 ID:UsldY24Z.net] おまえらえらそうにほざいてるけど、HaskellでGUIアプリ作れんの?
700 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 20:34:47.53 ID:I6LM+XSd.net] >>690 ほざいてないし作れない
701 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 22:11:01.07 ID:6j3t6Ku/.net] ほざいたし作った
702 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 23:37:46.91 ID:dOBb6but.net] 今 Haskell で GUI アプリを作ることにどれほどの意味がある? 無駄に苦労するだけで、たいしたメリットは得られないと思うが。 C# や Java などの方が意図したことを素直に書けると思うぞ。
703 名前:デフォルトの名無しさん [2015/06/29(月) 23:43:17.21 ID:8+Jbzv8W.net] >>690 作れるし作っているが楽しくはない。
704 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 23:46:32.90 ID:QGo7kC4a.net] GUI原理主義なんなの?
705 名前:デフォルトの名無しさん mailto:sage [2015/06/29(月) 23:56:20.64 ID:NIwVXw8K.net] (Haste で javascript にコンパイルして)作ってる
706 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 00:41:54.66 ID:xJJVLGS/.net] >>695 EmacsとVimを懲らしめる主義(適当)
707 名前:デフォルトの名無しさん [2015/06/30(火) 01:13:42.18 ID:Jhz+vTOP.net] Autocadは基本コマンド。
708 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 07:58:21.93 ID:c40dQzwL.net] >>693 状態のセーブがすげー簡単 苦労は特にない
709 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 08:02:38.09 ID:c40dQzwL.net] というかHaskellだろうが何だろうが GUIなんかロジックの部分に比べれば簡単
710 名前:デフォルトの名無しさん [2015/06/30(火) 12:03:29.96 ID:xY5YXWOJ.net] そうやって【自称関数型】のヤカラはいつも逃げる GUIで使えるアプリも書けない
711 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 12:19:59.61 ID:avn7235t.net] Gtk2hsとか
712 名前:デフォルトの名無しさん [2015/06/30(火) 12:55:10.53 ID:g8mVBFW2.net] いや普通にwxHaskellでもなんでも使って書けるから。 ただ抽象化が巧く嵌らないから楽しくないだけ。
713 名前:デフォルトの名無しさん [2015/06/30(火) 15:13:39.82 ID:X6br0/jB.net] ウィンドウシステムで動く以上、オブジェクト指向が一番いいんじゃないの。 ウィンドウってオブジェクトそのものだし。
714 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 17:14:12.45 ID:vxf+DpiB.net] メッセージを受け取る関数 Message -> IO () で引数をパターンマッチすればいいよ Cのswitch文を使うウィンドウシステムと同じ
715 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 18:20:38.25 ID:c40dQzwL.net] GUIどころかOSごとHaskellで書いた例:programatica.cs.pdx.edu/House/
716 名前:デフォルトの名無しさん [2015/06/30(火) 18:42:24.07 ID:X6br0/jB.net] >>706 2chで作ってたOSにも及ばない感じに見える。 世界の一流研究者が集って10年かけて作ったものがこれでは、Haskellの 実力が低いように見える。 ドヤって感じで出されると余計。 少なくとも2chで作ってたOSは、もう少し実用性があった。
717 名前:デフォルトの名無しさん [2015/06/30(火) 18:51:10.78 ID:X6br0/jB.net] 昔、JSはCの二倍速いとか、JavaはCの20倍速いとか言われてて、ベンチマークが 2chのスレに貼り付けられてた。 今のHaskellは同じような感じがする。 JSは、アプリケーションを拡張するのに使えばとても楽な言語だし、Javaは 互換性やわかりやすさに焦点をあてた言語。 良い部分を宣伝したらいいと思うのだけど、どうも原理主義の人は欠点を 否定することに一生懸命になる。 Haskellはこういうことに向いてないね、でも出来ないわけじゃないよって 位で良いんじゃないのかな。
718 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 19:02:56.27 ID:c40dQzwL.net] >>706 言いたいことはわからなくもないが全然「一流研究者が集まって」ないからw
719 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 19:04:08.01 ID:c40dQzwL.net] >>707 のまちがいスマソ
720 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 19:10:15.18 ID:9foLA8yU.net] 2chのOSってhigeponが作ってたmonaでしょ。目的が違うし、実用性も同程度だと思うが。 そういえばhigeponさんも関数型erになったが最近どうしてるんだろう
721 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 19:55:09.60 ID:FWhQ2ahg.net] Haskellが得意とする(向いている)アプリケーションとは何でしょうか。 また、なぜそれが他言語に比べてHaskellが有利だと言えるのでしょうか。
722 名前:デフォルトの名無しさん [2015/06/30(火) 20:01:42.67 ID:g8mVBFW2.net] >>712 構造を持ったデータの処理・操作。 理由は人智を超えない範囲で充実した型システム。
723 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 20:34:52.77 ID:vxf+DpiB.net] リスクの高いアプリケーション 得意なことは何かではなく最悪のケースは何かを考えること 理由は型システム
724 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 20:54:40.33 ID:FWhQ2ahg.net] >>714 リスクというのは人命ですか? もしかして医療関係のアプリケーションでよく使われていますか?
725 名前:デフォルトの名無しさん mailto:sage [2015/06/30(火) 21:54:36.59 ID:vxf+DpiB.net] 人命というのは何か違う気がする 単に死ぬことと意図的に殺すことを区別できなくなる
726 名前:デフォルトの名無しさん [2015/06/30(火) 21:57:27.47 ID:X6br0/jB.net] F-35にHaskellが使われたなら信じる。
727 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 00:19:00.28 ID:hCLvX6t9.net] >>699 >> 状態のセーブがすげー簡単 これどういう意味? MonadIOの中だったらどこでもliftIO でファイル保存アクション実行できるよ、ってこと?
728 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 08:39:27.15 ID:tJW6CsdE.net] >>704 ←固定観念に囚われてる愚か者の事例。
729 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 08:49:50.77 ID:wl+QWyy/.net] ちょこっとかじった初心者ですが、 型システムのおかげでバグが出にくいっていう長所は GUIアプリ作るときにも活かされますか?
730 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 09:37:31.97 ID:I91Dcp9K.net] >>720 Haskellつかったらバグが自動的に減るのではなく、 強力な型システムのお陰で、型レベルのバグがコンパイル時に 検出できるだけ。Cなんかではポインタへの誤ったキャストが コンパイルを通ってしまい実行時(システムが稼働したとき)にようやく 発見されるという惨事が相次いだので、コンパイル時に前倒し してエラーを補足できるという点が期待されていた。 現実には型が合っていても実装を間違うことはあるので、 Haskell使ったら「自動的に」高品質になるというのは完全嘘だと思ってる。
731 名前:デフォルトの名無しさん [2015/07/01(水) 10:28:08.57 ID:tOajYpeJ.net] 自分でHaskell書いたことのない奴が多すぎだろ 713くらいしかまともなこたえがない
732 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 11:45:24.51 ID:gMCljQ/I.net] >>720 GUIはコロコロ仕様が変わるので むしろバグっぽいコードも書けるというメリットのほうが大きい
733 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 11:45:40.65 ID:zqTVEjze.net] 型が強力なので、バグ以前に、適切な型を考えて、それに従って関数書けば 自然にプログラム書けて楽なことが多い。Type-directedプログラミングというか。
734 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 11:48:56.78 ID:zqTVEjze.net] >>718 いや単に状態が陽だから、何をセーブすれば良いかわかりやすい、というだけ。 まあGUIアプリに限った話ではないか。
735 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 12:00:05.77 ID:XEDFaQMZ.net] テスト駆動とかだったらテストをHaskellで書く筈だが Type-directedはHaskellを書く機会を減らしてしまう諸刃の剣
736 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 14:49:29.48 ID:rMwDHu3x.net] Haskellで書けばバグが完全に駆逐できるという話をよく聞く。 Haskellは並列化が効率的に行えるのでC++の10倍速いと言う記事を見た。
737 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 16:22:48.22 ID:YQJkkFEW.net] リスクの最たる例が人命というなら、地球を一人の人間と捉えた場合、経済はその血流であろう。血流を止めると地球さんがヤバい 経済界に寄与するソフトウェアを他言語版より多く送り出しているならばHaskellはリスクと戦う最前線の言語だといえよう
738 名前:デフォルトの名無しさん [2015/07/01(水) 18:22:25.85 ID:NjN/zNsy.net] で、おまえらGUIアプリ書けるのか? Haskellでカットアンドペーストできるエディタやペイントソフト書けんの?
739 名前:デフォルトの名無しさん [2015/07/01(水) 18:22:57.88 ID:NjN/zNsy.net] おまえらは「机上」でしか語れない
740 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 18:35:28.08 ID:wHMLdS0x.net] クリックカウンターおじさんのエミュレーションやめろ
741 名前:デフォルトの名無しさん [2015/07/01(水) 18:38:03.08 ID:tOajYpeJ.net] GUIライブラリのコンポーネント使っていいなら誰にだって書ける。 もちろんHaskellでも問題なく書ける。エディタでバイト列収納しとくための ロープから実装しろという話ならHaskellはかなり有利だ。
742 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 19:31:24.61 ID:W0dcBNHQ.net] >>730 確かに、机上の空論からのぶっつけ本番は非常に危険だ しかし机上を危険視するのは間違っている
743 名前:デフォルトの名無しさん [2015/07/01(水) 19:53:03.17 ID:XO0z7h0V.net] そもそも情報処理って机上がものいう世界だろ
744 名前:デフォルトの名無しさん [2015/07/01(水) 19:53:39.62 ID:XO0z7h0V.net] クリックカウンターおじさん本人なんじゃないか?
745 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 20:02:00.78 ID:I91Dcp9K.net] 机上の空論よりヘボくても動けるものを作れる奴が偉いとか典型的なマウンティング
746 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 20:16:46.99 ID:zqTVEjze.net] >>726 QuickCheck?
747 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 20:18:47.95 ID:zqTVEjze.net] >>727 それは嘘かhype
748 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 20:25:01.06 ID:N2f2t6hF.net] >>732 Haskellが凄いという話はよく聞く
749 名前:し、現代的なGUIエディタの実装に超有利という話も出てきた。 ところが、Haskellで書かれた著名なエディタは無いし、ライブラリやコンポーネントを使うなどと言うけど、 そのライブラリやコンポーネントはHaskellで書かれた著名なものがあるの? 極端な話、そんなに有利なら、Haskellで書かれたコンポーネントをそして APIを他の言語から使ってるんじゃないの。 凄い凄いという話をよく聞くものの、最終的にC/C++で書かれたライブラリを 呼び出せますよって話になる。 C/C++を呼び出してて本当にHaskellの凄いところであるゼロバグを実現できるの? 言っとくけど、C/C++は容易にバグが紛れ込むし、Haskellのようにゼロバグなんてことは無いよ? Haskellから呼び出すだけで、C/C++のバグも本当に消えるの? [] [ここ壊れてます]
750 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 20:30:36.90 ID:WaFLqKtq.net] ぐうの音もでん
751 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 20:35:48.17 ID:hkSyx5v6.net] C/C++ラッピングに頼るのは、国産OSを開発せずWindowsやUnixやLinuxに頼るようなものだ Haskellネイティヴなライブラリへの置き換えが必要ではないか
752 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 20:40:40.77 ID:RlBRpOsX.net] >>739 誰もそんなこと言ってない。 どこかよそで読んだなら、まともな話かどうか判定するからソース教えて
753 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 20:45:43.16 ID:hhCpaelW.net] この世界、技術的に良いものが必ずしも広まらないことは日常茶飯事。 逆に、マイナーだから優れている、も成り立たないが。
754 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 20:56:44.98 ID:4S8xRTlr.net] >>739 Haskellで自動回避できるのは型の不整合にまつわるバグであって、算法上のバグを回避できるわけじゃあないよな システム記述言語としてのHaskellは、他言語に比べて特に凄いということはないよ 動かしながらバグを取る必要があるのはC/C++と同じ
755 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 20:59:56.29 ID:WaFLqKtq.net] まあ、最近Facebookが出して世間を賑わしてるリアクティブプログラミングも元はHaskellで作られたやつだ。 あと、テストライブラリのQuickcheckも色んな言語に輸出されてるね。 思うんだけど、Haskellerのみんなの興味が、売れるアプリ、広く使われるソフト、 で必要とされるもんとズレてんじゃないかな。 1. その言語を使える技術者の確保が容易 2. ハード(スマホ)の最新機能がすぐ使える、 ドキュメントが豊富
756 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 22:46:09.54 ID:SBuzyDQs.net] ArrowがあればMonadは要らんのやな 最初からArrowにしとけばよかったやん
757 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 22:54:31.49 ID:hkSyx5v6.net] 元はHaskellで作られたのに実践は他言語だったの? Haskellは何か実践的開発上の問題を抱えてるの?
758 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 23:08:08.48 ID:1n3wggjU.net] つまんない煽り愛してないでまともな話しろ
759 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 23:09:21.21 ID:WaFLqKtq.net] >>747 もちろんHaskellのリアクティブライブラリもそれなりに使えるもんだったし、以降今に至るまで派生ライブラリがたくさん作られた。 でも、javascriptの方がより賑わっていて(開発者が多くて)Facebookにも資金力がとても高い、ってことさ。 つまり、Haskellの弱さは人がいないことだ、と俺は思う。 なぜ人がいないかは、理由は色々あるけど、外から見て何が得意なのかがよくわかんないつーのが大きくて、それはHaskellでの目に見える成果があんまり無いからで、その理由は人がいないからで、つまり
760 名前:デフォルトの名無しさん mailto:sage [2015/07/01(水) 23:32:51.19 ID:W0dcBNHQ.net] >>747 逆に他言語で実践できない部分にガラパゴス化という問題があるとも言える ガラパゴスが強いと思うか弱いと思うかは人それぞれ
761 名前:デフォルトの名無しさん [2015/07/01(水) 23:50:13.91 ID:j1v8qj3k.net] つまりクリックカウンターおじさんの言ってることは正しい面もある、と?
762 名前:デフォルトの名無しさん [2015/07/02(木) 01:00:22.82 ID:xB5xsyxT.net] 言語仕様の話がしたいのか、ライブラリ群の話がしたいのか。
763 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 01:43:36.68 ID:0H4A+sBi.net] 技術的内容を理解していない知ったかぶりの言葉遊びは無用。よそでやれ
764 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 06:15:08.75 ID:0QJ6vZJG.net] 言葉遊びをやめさせるには沈黙するインセンティブが必要 黙秘権とか 逆に、対案を出せなど沈黙しないことが強く求められれば言葉遊びはもっと酷くなる
765 名前:デフォルトの名無しさん [2015/07/02(木) 09:19:10.46 ID:RsQjnldo.net] ”クリックカウンターおじさん”という名誉棄損の呼び名を確認。
766 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 09:50:57.63 ID:L8xarZNp.net] クリックカウンターのような状態遷移をHaskellでは作れないという批判?
767 名前:デフォルトの名無しさん [2015/07/02(木) 10:03:54.46 ID:u7x11Nqb.net] クリックカウンターおじさんの問題提起については評価しないとだめだな。
768 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 10:28:08.52 ID:zhB7tSAg.net] 環境構築(cabal)がクソでライブラリを探すのも入れるのも更新するのも面倒くさいってのも有ったんじゃない Stackでどうなるか
769 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 11:10:25.42 ID:e+SQ5knv.net] 著者が挙げている「クリックカウンター」や「お絵かき」の類を作成するのに特別なexpertiseは不要で、 単に使用するGUIライブラリ・グラフィックスライブラリのドキュメントが読めれば充分なので、 その趣旨は私にはまったく判然としません(当該の記事で著者がOCamlで「お絵かきロジック」を 実装してみせよと要求する一方で自身ではJavaScriptによるそれを公表していない点も気になります)。 もちろん、OCamlであれHaskellであれ破壊的代入の類の副作用を使用せずに書くのもなんら困難ではありません。
770 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 13:57:23.04 ID:y1SlVF6x.net] 字数増やせば賢く見えるわけじゃないんですよ
771 名前:仲本だいすけ [2015/07/02(木) 15:06:12.36 ID:ZQFEgiVc.net] あの疑似科学野郎を黙らせるのになぜ半年もかかったのか?
772 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 17:11:55.72 ID:L8xarZNp.net] >>758 環境のクソさのお陰でわりと布教しづらかったので stack にはマジ期待してる >>759 なんら困難ではない。。。かなぁ???
773 名前:デフォルトの名無しさん [2015/07/02(木) 17:35:08.64 ID:xB5xsyxT.net] 破壊的代入なしで書くのは別に困難じゃないだろ。 入出力そのものを副作用だと言い出すならどんな言語でも無理だしな。
774 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 17:46:38.81 ID:FcRiDZyX.net] >>759 当事者ご降臨ですかw 確かに保身第一、全く相手にしてませんが何か?っていう答え方だな
775 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 18:22:32.80 ID:aW/wUO6R.net] >>761 おまえらの不徳の致すところ
776 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 18:30:48.79 ID:e+SQ5knv.net] おいおい、単に qiita.com/nonstarter/items/2763f5d85f2b8df3b18b からのコピペだぞ。検索もできんのか…
777 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 18:55:57.21 ID:y1SlVF6x.net] 宣言型プログラミング言語スレで脳内設定エスパーしろとな
778 名前:デフォルトの名無しさん [2015/07/02(木) 19:00:17.41 ID:xB5xsyxT.net] Ocamlアイドル @no_maddo 24時間 追記部分があるのを知らなかった、めっちゃ面白かったです 関数型言語 - 『関数型プログラミングに目覚めた!』のレビュー(Day-1) on @Qiita qiita.com/nonstarter/items/2763f5d85f2b8df3b18b … kenokabeさんの謎クリックカウンタとお絵かきのネタは仙台でも大人気だ!
779 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 19:26:05.17 ID:gqhA8KsA.net] これが何に使えるのかよくわからない。
780 名前:デフォルトの名無しさん mailto:sage [2015/07/02(木) 21:46:14.33 ID:E90eWw9y.net] >>766-767 その程度のために Googleモナドを持ち出すなど軟弱な
781 名前:仲本だいすけ [2015/07/03(金) 01:48:03.52 ID:RZmOyo0m.net] ,.-―: ̄`ー::::::::::、 /::::::::::::.::::::::::::::::::::::::::::`::、、 /::::::::::::::::::::::::::::::::::::::::::::::::::::::`、 l::::::::::::::::::::::::::::::::::::::::;':l:::::::::::\::l l:::::::::::::::::::::::::::::::::,,::::::::;-,:,::::::::::::::::l l::::::::::::::::,_,.::::,';::::::;:::::: :: l ::::::::::::::l l::::::::::/-/:::/-ニ,.::::/=,./::::::::::l ヽ:::: ´、ひ> ;: l .<ひ>' 、::::::::/ ヽ:::::  ̄ .)::; l  ̄ l::::/ 、:::::.. /:::; .,-、 l:::/、 :::::::: ゝヽ- ー' 、 l::/, ,:、:: / ,--、,-.、_ l / 、::、 `ー ̄-' / 、::ヽ /: r‐''''^¨^⌒ ̄ ̄ ̄ヽ ,ノ`, \ ノ/ ヽ ι.} λ ) ヽ(,. ノ! r' ( l .,/ ノ,,,,,,,,,,,,,,,,,,,,,,,,,,,,丿へ ノ ,) ( ∵ ∧∵ /,,丿 \,,,,/人\__ノ / ( ) (__) ( ) 《 l (___) 《 ̄ ̄》 《__(____) 《____》
782 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 03:37:23.69 ID:aag7hyI7.net] 180°回る首
783 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 08:29:08.65 ID:8+5j5k8x.net] >>761 相手が弱者だと思って戦いを始めるやつは撤退する口実を作れないから泥沼化する 強敵ならいつでも撤退を正当化できるのに
784 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 08:38:57.07 ID:R0ApVOfB.net] >>763 入出力は副作用でしょ普通 入出力無しにGUIを描くと言ってるのと同じで矛盾してる
785 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 08:39:40.10 ID:uImfavx2.net] あほか
786 名前:デフォルトの名無しさん [2015/07/03(金) 08:41:04.32 ID:wl7u/SNJ.net] >>774 意味論による。
787 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 08:46:11.05 ID:R0ApVOfB.net] >>776 言ってる事が理解できないので詳しく 入出力で参照透過性を維持できる説明もよろ
788 名前:デフォルトの名無しさん [2015/07/03(金) 09:04:39.28 ID:wl7u/SNJ.net] >>777 IOモナドの仕組みくらい自分で調べたらよろしい。 そして、グラフ書換系のどこにも副作用なんかない。
789 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 09:11:48.16 ID:R0ApVOfB.net] >>778 グラフ書換系はGUIとは関係ないだろう はぐらかさないで説明ヨロ
790 名前:デフォルトの名無しさん [2015/07/03(金) 09:15:30.38 ID:wl7u/SNJ.net] >>779 IOモナドは世界状態RealWorldを取るStateモナドと同じ意味論を与えることができる。 Stateモナドに副作用がないのと同様にIOモナドはモナドにも副作用はない。これが1。 IO a を RealWorld -> (RealWorld, a) と元の形に直した上で Haskellのグラフ書換系上で入出力がどう見えるか考えてみればいい。これが2。 これでわからんなら私のせいではない。
791 名前:仲本だいすけ [2015/07/03(金) 09:46:07.14 ID:6Fdm7Fxt.net] 疑似科学おじさんまだいるの?病院行こうよ
792 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 09:57:24.37 ID:p7lUbcZE.net] 岡部氏の「もっと世界観を」には賛成。 しかし関数プログラミングやFRPは銀の弾ではないとも思う。 なぜこうも銀の弾が出てこないのか?
793 名前:デフォルトの名無しさん [2015/07/03(金) 10:02:29.75 ID:Iifsm05F.net] そんな事より毛ブログがなんで更新されないのかな?
794 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 10:17:59.41 ID:R0ApVOfB.net] >>780 グラフ書換系からモナドがどう見えるかは関係ない 実際にIOモナドから値を取り出し、副作用を伴う処理を使う際 参照透過性を維持できるという説明をよろしく
795 名前:デフォルトの名無しさん [2015/07/03(金) 10:19:49.54 ID:vDmQcknf.net] まあとりあえずこれを読めよ d.hatena.ne.jp/kazu-yamamoto/20090627/1246135829
796 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 10:26:38.47 ID:R0ApVOfB.net] >>785 そのリンク先の説明は理解できるが 今レスしている人はどの趣旨の説明でもない
797 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 10:26:38.81 ID:R0ApVOfB.net] >>785 そのリンク先の説明は理解できるが 今レスしている人はどの趣旨の説明でもない
798 名前:デフォルトの名無しさん [2015/07/03(金) 10:28:25.82 ID:wl7u/SNJ.net] IOモナドの表現getCharが複数あってもRealWorldの値が違うので 決してノードが共有されないことに気が付かなかったんですかねえ。 グラフ書換でノードが共有されることと参照透過性との関係が 理解できてない可哀想な子だったか。
799 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 10:32:05.52 ID:R0ApVOfB.net] あ、すまん確かに3と同じ事いってるね タプルをRealworld aと勘違いしてた
800 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 10:39:21.05 ID:R0ApVOfB.net] >>788 よく読んでいなかったよ謝る
801 名前:仲本だいすけ [2015/07/03(金) 10:48:00.79 ID:Dt4z3lub.net] >>782 ThinkDifferent(笑)
802 名前:デフォルトの名無しさん [2015/07/03(金) 10:49:58.03 ID:aSIkPSGQ.net] 駱駝さん、アホに構ってんと、仕事しようよ…
803 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 11:24:59.81 ID:p7lUbcZE.net] > Haskell には副作用はない。なぜなら、Haskell が作るのは命令書のみで、それが実行されるのは Haskell の外での話だからだ。 そういえば、この解釈は酷い解釈だったな
804 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 11:35:30.05 ID:8+5j5k8x.net] >>793 ・副作用は定義した時ではなく実行時に発生する ・引数 (RealWorld) は関数を定義した時ではなく呼び出した時に渡される ほぼ同じ内容だ 同じ内容に優劣をつけるのは言葉遊びだ (遊ぶなとは言っていない)
805 名前:仲本だいすけ [2015/07/03(金) 11:39:29.06 ID:TviClge2.net] 楽しいから続ける(笑)
806 名前:仲本だいすけ [2015/07/03(金) 12:04:29.45 ID:ri2L7Lgt.net] ,.-―: ̄`ー::::::::::、 /::::::::::::.::::::::::::::::::::::::::::`::、、 /::::::::::::::::::::::::::::::::::::::::::::::::::::::`、 l::::::::::::::::::::::::::::::::::::::::;':l:::::::::::\::l l:::::::::::::::::::::::::::::::::,,::::::::;-,:,::::::::::::::::l l::::::::::::::::,_,.::::,';::::::;:::::: :: l ::::::::::::::l l::::::::::/-/:::/-ニ,.::::/=,./::::::::::l ヽ:::: ´、ひ> ;: l .<ひ>' 、::::::::/ ヽ:::::  ̄ .)::; l  ̄ l::::/ < 排便ダン 、:::::.. /:::; .,-、 l:::/、 ,―:::::::: ゝヽ- ー' 、 l::/,、ヽ l,、,、,,:、:: / ,--、,-.、_ l /::::::,、,、l l,、,、,、,、,、::、 `ー ̄-' /:::::::::::,、,、l l,、,、,、,、,、,、::ヽ /::::::::、,、,、,、,ノ:\ /⌒\〆', `  ̄ ´ ゝ/⌒\ / ノつ\ ・ ・ /⊂ ヽ! o0○ノ / 3 \ (::::⌒ヽ / とノ\ ヽ○0o ( /、_ノ\ Y `(_、_) / \´ )゚ \_) `ヽ : :;;*:; : : : | (_ノ 人__;;:;;、___ノ ヽヽ ヽヽ ;:;;:;;:;,, ──┐ | | ──┐ | | ∬ ;;:;::.;::.::;::..:;:..: ∬ / | | /. | | ・〜 ;::;.:;:;:;:;:.:;:.:::.;:;:;.:.:.: ノ ノ ┐ ノ ノ ┐ ∬;;;:::;;;:;:.:;:.::.:;;.:.;.:;.:; ∬ ┴ ヽヽ ┴ :"
807 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 12:15:29.28 ID:p7lUbcZE.net] >>794 ほぼ同じ内容だろうが、それらはどれも酷い解釈だと思うよ
808 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 12:36:08.66 ID:IUu1So5+.net] 何が酷いの? IOが一級値である以上、最も正確な解釈だと思うが。
809 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 12:38:18.64 ID:InleWrcM.net] むしろそれ以外に、実際の実行結果に合う解釈はあるのか?
810 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 15:16:07.46 ID:msRG1Yik.net] >>796 顎の両脇の部分が、後ろで済ませたとぐろ糞に見える
811 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 15:58:45.53 ID:Vi+qPEKL.net] Prelude> let x = putStrLn "hello" in x >> x hello hello Prelude> let x = putStrLn "hello" in seq x x hello Prelude>
812 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 19:01:10.98 ID:V10CPSDi.net] 型=値の集合と思ってると IO でラップされた型は一体どんな値なのかと気にしてしまうんだね。
813 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 19:04:32.10 ID:Vi+qPEKL.net] >>802 それはIOに限らず抽象データ型一般について言えるかも
814 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 21:18:44.48 ID:XD0nd274.net] IO aが抽象データ型だとするとb -> IO aがFactoryMethod IOはコンストラクタが隠蔽されているのだから必然的にそうなる
815 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 22:59:59.80 ID:8flj3gJm.net] 言いたいことはわかるが空な多相型じゃなくてτ1 -> IO τ2とか書いてくれ(笑)
816 名前:デフォルトの名無しさん mailto:sage [2015/07/03(金) 23:22:54.07 ID:XD0nd274.net] そもそも一番肝心な(->)のコンストラクタがない Haskellの半分以上はコンストラクタやパターンマッチでは説明がつかない
817 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 02:18:23.55 ID:XsL/EKLB.net] 半分以上のHaskell教えてよ
818 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 09:50:27.87 ID:WNuVOXDD.net] Haskell は数学を連想させるので絶対流行らん。
819 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 10:25:08.25 ID:8ixaKuBt.net] >>808 その「ので」が「今日は天気が良い『ので』どこかに出かけよう」ぐらいエエカゲンなんだよなあ
820 名前:仲本だいすけ [2015/07/04(土) 10:41:07.54 ID:uNR/QH/o.net] ,.-―: ̄`ー::::::::::、 /::::::::::::.::::::::::::::::::::::::::::`::、、 /::::::::::::::::::::::::::::::::::::::::::::::::::::::`、 l::::::::::::::::::::::::::::::::::::::::;':l:::::::::::\::l l:::::::::::::::::::::::::::::::::,,::::::::;-,:,::::::::::::::::l l::::::::::::::::,_,.::::,';::::::;:::::: :: l ::::::::::::::l l::::::::::/-/:::/-ニ,.::::/=,./::::::::::l ヽ:::: ´、ひ> ;: l .<ひ>' 、::::::::/ ヽ:::::  ̄ .)::; l  ̄ l::::/ 、:::::.. /:::; .,-、 l:::/、 :::::::: ゝヽ- ー' 、 l::/, ,:、:: / ,--、,-.、_ l / ,.:':'゙'゙'゙:゙'゙':';. 、::、 `ー ̄-' / r゙ ,.: :;;;:: : : : 、::ヽ /: | : ::::~';::--ー'ー-----ーー;;:'゙ .: :` ‐- 、 | ,i ::::::::::::::::::::::::::::::: ::: :ヾ i r' ::::::::::::::::: : : :::::: ::::: ::::. . / | :::::::::: : : : : ::: :: :: イ i : : ::::::::::: : : ::::::: : | | ,.;イ-- ., ,... -' i i ,.;':/ ゙'ー-.,_ i ,.イ:: / .i:::: /:/  ̄i / ゙i | │:: ノ::/ | i | | r':: イ:::::i゙ | | i | |:: | ヽ '-., ヽ 〈 ヽ ヽ., i, , '-, ゙'ー'ー' ヽ、`,ー、 `'ー'ー'
821 名前:デフォルトの名無しさん [2015/07/04(土) 11:47:31.61 ID:D//5Uocc.net] 筒井康隆が新潮10月号(9/7発売)に最新長編『モナドの領域』330枚一挙掲載
822 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 14:12:51.24 ID:WvwJxr10.net] Haskell は門限が7時の女子大生を連想させるので絶対流行らん。
823 名前:デフォルトの名無しさん mailto:sage [2015/07/04(土) 16:46:21.33 ID:rWY2qCze.net] Haskell 擬人化するなら眼鏡で想像するひと多そう。
824 名前:デフォルトの名無しさん [2015/07/05(日) 03:00:57.48 ID:18u325sL.net] jbbs.shitaraba.net/bbs/read.cgi/study/2246/1279896594/534 ↑ ↑ ↑ ↑ ↑
825 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 03:18:53.53 ID:5EFP5F9v.net] リンク先政治広告なのでみなくてよろし
826 名前:デフォルトの名無しさん mailto:sage [2015/07/05(日) 11:32:05.80 ID:j/NgsVfb.net] 長期的に考えるんだ 最初は眼鏡で途中から眼鏡を外せば流行ると考えるんだ
827 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 00:22:13.25 ID:wlw6otNx.net] 使うメリットが無い。 デメリットは多いのに。
828 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 04:07:14.46 ID:W9Wle9it.net] 毛を引き寄せてしまった程の黒魔術的魅力がHaskellにあるのだろう
829 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 04:12:56.58 ID:G+yljX6j.net] goよさそうだなと思って覚え始めたけど型定義が貧弱すぎてやる気大幅ダウン Haskellは禁断の果実だった
830 名前:デフォルトの名無しさん [2015/07/06(月) 10:19:51.08 ID:9VlVzieP.net] システムプログラミング言語ならhaskellやった人はgolangよりrust結構気に入るだろうと思う 代数的データ型、型クラス、型推論、immutableがデフォルト、パターンマッチ、 メモリリークをコンパイルエラーにする と結構 ml likeな言語
831 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 10:24:54.61 ID:9VlVzieP.net] >>818 毛を引き寄せたのはhaskellじゃなくてjsだろ
832 名前:デフォルトの名無しさん [2015/07/06(月) 18:54:20.21 ID:yIxlkBRi.net] 痴呆症ブログ更新きたよ! 749 名無しさん@ゴーゴーゴーゴー! 2015/07/06(月) 14:17:10.21 ID:IaVh3M450 kenokabe-techwriting.blogspot.jp/2015/07/javascript.html おかえり!入院しろ!
833 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 21:10:08.11 ID:EN2KuOqG.net] >>820 いいことを聞いた、ちょっと触ってみようかな
834 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 21:43:24.49 ID:G+yljX6j.net] 普及してる言語の中でミスが起きないよう設計されてるやつが欲しくてさ Rustは人口少ないしScalaよりさらに関数型で安全そうだけどじゃあHaskellでいいじゃんってなる
835 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 22:13:00.63 ID:pYzRJ5bG.net] elixirとか
836 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 22:38:54.30 ID:/jetTYu7.net] 末尾呼び出しが使えないとやる気が出ないね ループでしか書けないからね
837 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 23:08:12.61 ID:G+yljX6j.net] 静的型 直和型 再帰型 抽象型 独自(ドメイン固有)型 型推論 ダブルディスパッチ 高階関数 map/filter/fold 末尾再帰最適化 オブジェクト指向でもこれくらいサポートしてほしい
838 名前:デフォルトの名無しさん [2015/07/06(月) 23:11:36.25 ID:8//4HfJE.net] 相変わらず岡部健の記事は狂ってて面白い
839 名前:デフォルトの名無しさん mailto:sage [2015/07/06(月) 23:28:12.05 ID:IO/OfGDx.net] >>824 rustは日本人ユーザが少ないだけでコミュニティは盛り上がってる
840 名前:デフォルトの名無しさん [2015/07/07(火) 00:34:34.08 ID:/AiLg+DV.net] 岡部が他人のコードを勝手に、不完全に書き換えて実行して その結果を叩いてるぞ
841 名前:デフォルトの名無しさん [2015/07/07(火) 01:15:52.91 ID:6n40dgbK.net] 岡部の記事だけを読むと、説得されかけるのは疲れているからだろうか?
842 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 01:30:24.54 ID:0l2OmbIX.net] >>824 rustはc,c++と同じ低レベルプログラミング言語だから haskell、scalaとは被らないよ
843 名前:デフォルトの名無しさん [2015/07/07(火) 01:44:46.81 ID:5T5xC6ja.net] 「ミスが起きない」の意味が違う
844 名前:だよな。 HaskellとRustでは型に意図された機能がぜんぜん違う。 [] [ここ壊れてます]
845 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 04:38:19.84 ID:wEQ5fYPF.net] >>833 どういう部分が? 所有権という概念が入るだけで、型付けは結構強めだと思うが
846 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 05:07:24.51 ID:wEQ5fYPF.net] >>831 洗脳…ですかね
847 名前:デフォルトの名無しさん [2015/07/07(火) 08:27:24.02 ID:5T5xC6ja.net] >>834 Rustは高階カインドやGADT使えないでしょ。モナドすらない。 だけど線形型は使えて(所有権)、要するに基本のHindley-Milner systemからの 強化方向とその背景にある思想が全然違う。 データの構造に対する表現力を求めるのとリソース管理を求めるのと。 なおどっちも突っ込むと人智を超え始めるのはATSを見ればお分かりの通り。
848 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 08:30:37.69 ID:6KFd5cV4.net] Rustは低レベルな世界に関数型の表現力と安全性を持ち込もうとしている言語。 最初はOCamlで開発されていたからか、letとかOptionとかML系の匂いはする。 ただし簡潔さよりもゼロオーバーヘッドを優先しているから、冗長な表記が多々含まれる。 あと型推論は関数定義内だけに適用されるから、エラーメッセージが見当外れの場所を指さない一方、 borrow checkerのエラーはすごく把握しづらい。impl書いている時は特に。 自分がいかにGCに依存し、リソース管理を怠っていたかをこれでもかという程思い知らせてくる言語。
849 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 08:31:10.23 ID:bP16dll8.net] Rustなんて放り投げてATSやろうぜ!
850 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 11:38:06.78 ID:ZG49EUnh.net] これが超えちゃいけないラインってやつか トランポリンとかモナドとかよりもっと抽象度高い系の片鱗を味わったぜ
851 名前:デフォルトの名無しさん [2015/07/07(火) 12:46:53.46 ID:KLvjH7rL.net] 岡部健・・・・・・。
852 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 15:14:42.99 ID:kS7BAnfS.net] >>838 岡部究(master_q)さん、暇なんですか?
853 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 15:31:19.79 ID:AZjd+yQY.net] ParsecとTrifectaってどう違うの?
854 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 15:36:54.07 ID:kS7BAnfS.net] >>842 Parsec の改良実装が Trifecta だそうです(TwitterのTL調べ)
855 名前:デフォルトの名無しさん [2015/07/07(火) 16:41:16.20 ID:kvoehb1f.net] まさかUCLA卒の情報技術者を自称する岡部が、 メモリを食いつぶしてることの裏を取ってないわけねーだろ。 これには何か事情があるんだろう。
856 名前:デフォルトの名無しさん [2015/07/07(火) 16:44:08.49 ID:kvoehb1f.net] まとめ: 岡部「破壊的代入を使わないクリックカウンターやお絵かきロジック(マウスのドラッグ)はFRP(自称)でなければ書けない」 →OCamlでもHaskellでも瞬殺 →岡部「再帰でメモリリーク(※スタックオーバーフローの意)する」 →末尾再帰なのでスタックオーバーフローしないし、実際のメモリ消費量も増えていない。 岡部の示した「証拠画面」はメモリ不足ではなくプロセスを強制終了しただけ。
857 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 16:57:06.07 ID:AzQt5h10.net] マジで末尾再帰の最適化を知らなかったのか、kenokabe独自定義で違う意味なのか、どっちなんだ? 前者だとちょっとガッカリ…
858 名前:デフォルトの名無しさん [2015/07/07(火) 17:57:25.43 ID:T57Vd7z3.net] メモリリークはバズワードであってだね・・・・
859 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 18:14:46.72 ID:50EUtPEU.net] kenokabeさんはもう許されていいとおもう
860 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 18:17:56.32 ID:Ra6qpxUV.net] Haskellは強制されても習得できない難しい言語だからこそ非人道的事案は少ない それに比べて関数型という安易な言葉に苦しめられる人は多い
861 名前:デフォルトの名無しさん mailto:sage [2015/07/07(火) 20:57:42.46 ID:strljqHr.net] どこかのスレでツリートラバースするのに再帰を使うのは良くないマナーと書いたら、 末尾再帰と言われたのだが。
862 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 00:23:41.84 ID:D8OEoYJf.net] >> 850 なぜ良くないの?
863 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 00:43:21.45 ID:lu3S4Qgm.net] >>>845 OCaml版はloop_at_exit使ってるのがダメと指摘されますた>< Graphics.wait_next_eventかGraphics_js.loop使ってください
864 名前:デフォルトの名無しさん [2015/07/08(水) 01:57:29.30 ID:T1Ir4r2m.net] >>845 末尾再帰はあのコード例では関係なくて、イベントハンドラを経由したtrampolineになってるのでスタックオーバーフローしない、が正しそう。
865 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 03:26:31.55 ID:gcJIUX06.net] >>851 末尾再帰の最適化がかからない言語は使うべきではないともレスがあったな。
866 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 05:37:16.57 ID:D8OEoYJf.net] >> 854 よく分かりませんが、ところで、あなたにレスを見て気になって、調べて初めて知りました。 Haskellって末尾再帰の最適化って無いんだね。 ずっと勘違いしてた。気付かせてくれてありがとう。
867 名前:デフォルトの名無しさん [2015/07/08(水) 06:38:51.11 ID:k4MH4D3R.net] >>855 >Haskellって末尾再帰の最適化って無いんだね TCOが無いんじゃなくて、あくまでサンクの問題。
868 名前:デフォルトの名無しさん [2015/07/08(水) 07:15:31.29 ID:asOwE27P.net] parsecとtrifectaは比較するようなものじゃないよ
869 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 08:22:34.09 ID:SmYj13jC.net] >>857 kwsk
870 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 08:29:06.72 ID:gcJIUX06.net] >>855 そもそも最適化が無い言語とはC言語のことで、Cは使うなHaskellを使えと言う話だったのだが。
871 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 08:53:04.13 ID:Hcg+sLDh.net] Haskellでサンクをインライン展開する最適化ってできるんじゃねえの サンクが末尾にあったらTCOと同じだろ
872 名前:デフォルトの名無しさん [2015/07/08(水) 09:03:37.61 ID:k4MH4D3R.net] >>860 できる。ghcなら-O2つければいい。
873 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 09:44:23.49 ID:gcJIUX06.net] そもそも、Cの関数呼び出しはアドレスを指定してジャンプ、ループは オフセットを指定してジャンプ程度の違いしかないので、インストラクションに 関しては大して違いが無いのだが。 どうもハスケラーは関係ないことを指摘して、「だから◯◯はダメだ」と言い出す 傾向が強い。
874 名前:デフォルトの名無しさん [2015/07/08(水) 10:56:59.54 ID:k4MH4D3R.net] そりゃTCO効いた後なら違いは殆どなくなるにきまってる。
875 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 11:02:57.48 ID:Mh0VppoT.net] 「そもそも、Cの関数呼び出しはアドレスを指定してジャンプ、ループは オフセットを指定してジャンプ程度の違いしかないので」 はあ???
876 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 11:10:43.42 ID:+0ZOrsx3.net] >>863 「TCO効いた後なら」同じだが、>>862 は「Cの関数呼び出し」と言ってるから Cも関数呼び出しもまったくわかってない。プログラムわからないんだったら出てくんな。
877 名前:デフォルトの名無しさん [2015/07/08(水) 11:28:35.90 ID:k4MH4D3R.net] >>865 まさかスタック積むことすらわかってないとかなんかね?
878 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 15:11:37.94 ID:TEEbED7E.net] 久しぶりにきたら荒れてるな Haskellは破壊的代入をしようとすると面倒なのがつらい。 巨大な1次元配列の任意の場所を参照しながら大量に書き換える処理とか 純粋性を保ったままやろうとすると凄いことになる。 *例えば画像データの一部に別の画像をmixするとか
879 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 16:24:24.26 ID:Eo9ZYfU/.net] >>866 スタックに引数、戻り値と積んでからジャンプするんだから、アドレスを渡す 関数ならスタックは積む必要が無い。 再帰してるんだから。 ハスケラはどうも自分は天才で自分以外は全員馬鹿と思い込む傾向がある。
880 名前:デフォルトの名無しさん [2015/07/08(水) 16:25:04.00 ID:Fj3AV/LF.net] 相変わらず殺伐としている。 いつものマウンティング合戦。
881 名前:デフォルトの名無しさん [2015/07/08(水) 16:26:57.55 ID:Fj3AV/LF.net] 多分、ハスケラではなくオカマラーだよ。 なぜかオカマちゃんが出没するのだ。
882 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 16:51:49.63 ID:TEEbED7E.net] ハスケラと一緒に仕事したい(自社製品を一緒につくりたい)けど 怖い人多そうで誘いづらい
883 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 17:09:26.71 ID:F0vddBGo.net] 「Cも関数呼び出しもまったくわかってない。プログラムわからないんだったら出てくんな。」 「まさかスタック積むことすらわかってないとかなんかね? 」 毎日こんなこと言われると思う。
884 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 17:22:12.92 ID:TEEbED7E.net] なにそれ怖い 製品完成する前に心折られそう
885 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 17:24:08.22 ID:g9xxt+x4.net] 「そもそも、Cの関数呼び出しはアドレスを指定してジャンプ、ループはオフセットを指定してジャンプ程度の違いしかないので」 とか 「スタックに引数、戻り値と積んでからジャンプするんだから、アドレスを渡す関数ならスタックは積む必要が無い。再帰してるんだから。」とか (しかもTCOの話をしてるのに)、本当にCも関数呼び出しもわかってない知ったかぶりがHaskellerを中傷してるだけ。 それ以上でもそれ以下でもない。
886 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 17:29:09.36 ID:TEEbED7E.net] 穏やかなハスケラいないかな 簡単なプログラムができる程度の初心者でもいいんだけど 一緒に自社製品つくりたい (ただし売上あるまで一緒に無給)
887 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 17:33:01.82 ID:3bDYKzqv.net] >>874 どうもハスケラーは関係ないことを指摘して、「だから◯◯はダメだ」と言い出す 傾向が強い。
888 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 17:34:43.10 ID:3bDYKzqv.net] 最後には「Javaの話ししてるのにJavascriptと勘違いしている」などと言い出しそうだな。
889 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 17:37:24.50 ID:ikFma15C.net] わかってないから馬鹿にされてるんじゃなくて、 わかってないのに自覚せず威張ってるから馬鹿にされてるんだが…。 そういう奴がいて、間違いを指摘すると逆ギレされる職場とか絶対嫌。
890 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 17:39:55.04 ID:coR9sNH7.net] 末尾呼び出し最適化は再帰だけじゃないよ
891 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 17:46:11.37 ID:TEEbED7E.net] 馬鹿にするのも逆ギレもよくないとおもう そしてこのスレが荒れるのも彼の呪いじゃないかとおもう もうそっとしておくのが一番いいとおもう
892 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 17:48:42.74 ID:3bDYKzqv.net] 「Cは再帰の最適化が無いから使うべきではない、Haskell使え」と言う話に、 Cは再帰の最適化が必要ないのに何言ってんの?と答えた。
893 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 17:54:30.07 ID:3bDYKzqv.net] Haskellの最適化って他の言語では必要ないものでしょ。 「遅延呼び出しによって必要のない計算を無くせるスゴイ!」 他の言語では最初から必要ない計算はしないからそんな最適化は必要ない。 自らゴミを持ち込んで 「ゴミを減らせたスゴイ!Cはゴミを減らせないから使うべきでない!」 とか言い出すのがハスケラー。
894 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 17:54:46.50 ID:jdKxxZpi.net] いろいろと誤解している気がする
895 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 18:02:40.05 ID:7bDc6WAX.net] まず、末尾再帰をループに変換する最適化は、CでもHaskellでも可能で、実際にGCCでもやってる。 それはさておき、Cではループを末尾再帰で書いたりしないから、そんな最適化はいらない、という意見もそれはそれでわかる。 末尾再帰使わないのに、末尾再帰最適化がないからダメ、なんて言ってる奴がいたらそいつがおかしいので具体的ソース希望。
896 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 18:11:09.96 ID:LC6Y88mm.net] 必死に藁人形作ってるだけだから構ったら駄目だよ 末尾再帰最適化を知ってて制御構文を知らないなんて そんな支離滅裂な馬鹿を前提としてる時点で察しろと
897 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 18:13:26.90 ID:7bDc6WAX.net] で、CでもHaskellでも、末尾呼び出し最適化されていない普通の関数呼び出しは、 戻り番地や、まだ使う変数をセーブしておくためにスタックを消費する。 (引数渡しにスタックを使うこともあるけど、そうでなくても) (再帰でも、再帰でなくても)末尾呼び出しの場合、そのセーブが不要なので、 ただのジャンプ(と引数のセット)だけに最適化できる。 この最適化は関数型言語の処理系では普通は実装されている。 Cでも全くできないことはないと思うが、いろいろ面倒そうなので やってるコンパイラは寡聞にして知らない。
898 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 18:14:38.28 ID:3bDYKzqv.net] >>884 変換する最適化という言い方が、ハスケラーっぽいなあ。 Cは積む必要のないものは積まないんだから。 スタックに何も積まなければループも関数呼び出しも大した違いは無い。 そういうわけでこれからは、最適化しないと使い物にならないHaskellと考えていただこう。
899 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 18:14:42.05 ID:7bDc6WAX.net] >>885 スマソ。何となくちゃんと説明しないと俺の気が済まなかった。
900 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 18:17:33.59 ID:7bDc6WAX.net] (末尾呼び出し最適化されていない)関数呼び出しでスタックに積むものはCでもHaskellでも同じ。 戻り番地と、生きている変数と、レジスタに入りきらない引数。
901 名前:デフォルトの名無しさん [2015/07/08(水) 18:27:23.28 ID:Fj3AV/LF.net] マウンティングする奴は、マウンティングすることが目的だから、生産性は 低い。学者さんに多いタイプ。アカハラ怖い。
902 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 18:27:27.64 ID:LC6Y88mm.net] >>887 ???? Cもfastcallじゃない限り戻りアドレス積むよ
903 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 18:28:15.90 ID:LC6Y88mm.net] しまった同じやつだった…
904 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 18:39:15.89 ID:2M74HMLS.net] 馬鹿とは議論するな。傍目にはどちらが馬鹿か判りにくい
905 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 18:50:26.80 ID:7bDc6WAX.net] 本当に混乱してる人もいるかもしれないし、説明のまとめだけ… 884 :デフォルトの名無しさん:2015/07/08(水) 18:02:40.05 ID:7bDc6WAX まず、末尾再帰をループに変換する最適化は、CでもHaskellでも可能で、実際にGCCでもやってる。 それはさておき、Cではループを末尾再帰で書いたりしないから、そんな最適化はいらない、という意見もそれはそれでわかる。 末尾再帰使わないのに、末尾再帰最適化がないからダメ、なんて言ってる奴がいたらそいつがおかしいので具体的ソース希望。 886 :デフォルトの名無しさん:2015/07/08(水) 18:13:26.90 ID:7bDc6WAX で、CでもHaskellでも、末尾呼び出し最適化されていない普通の関数呼び出しは、 戻り番地や、まだ使う変数をセーブしておくためにスタックを消費する。 (引数渡しにスタックを使うこともあるけど、そうでなくても) (再帰でも、再帰でなくても)末尾呼び出しの場合、そのセーブが不要なので、 ただのジャンプ(と引数のセット)だけに最適化できる。 この最適化は関数型言語の処理系では普通は実装されている。 Cでも全くできないことはないと思うが、いろいろ面倒そうなので やってるコンパイラは寡聞にして知らない。 889 :デフォルトの名無しさん:2015/07/08(水) 18:17:33.59 ID:7bDc6WAX (末尾呼び出し最適化されていない)関数呼び出しでスタックに積むものはCでもHaskellでも同じ。 戻り番地と、生きている変数と、レジスタに入りきらない引数。 👀 Rock54: Caution(BBR-MD5:405b7f1af0f5a85b432d79fa769e9aeb)
906 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 19:00:46.58 ID:Hcg+sLDh.net] ループを無くす理由の一つはnullを無くしたかったから nullは不要 → 初期化と代入の区別が必要 → 面倒だから代入も不要 → ループも不要
907 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 19:03:01.21 ID:7bDc6WAX.net] じゃあ、そもそもなんでループをわざわざ末尾再帰で書くの?という疑問は当然だけど、 ループで書くと破壊的代入が必要になるから、関数的に書くと自然に末尾再帰になる。 なので関数型プログラミングをするなら末尾再帰最適化は必須だし、 実際に(再帰以外の末尾呼び出しの最適化も)まともな処理系はみんな実装してる。 関数型言語では必須かつ簡単な最適化なので。
908 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 19:04:06.48 ID:7bDc6WAX.net] >>895 すまん前後した
909 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 20:23:51.51 ID:oVqSZ92L.net] >>886 vcは引数が全く同じ関数の末尾呼び出しをgotoにするよ。
910 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 20:46:18.84 ID:7bDc6WAX.net] >>898 「引数が全く同じ」ってことは、末尾再帰だよね? 末尾再帰は>>884 にあるとおりGCCも(引数が違っても)最適化してる。 >>886 は再帰以外の末尾呼び出しの話だった。 一続きだったんだが、独立して読むと明示されてないね。 >>894 でまとめて読んでくれ。すまん。
911 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 22:36:48.90 ID:oVqSZ92L.net] >>899 いいや、tail callだよ。
912 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 22:53:06.86 ID:TEEbED7E.net] VSにHaskell用プラグインを組み込むプロジェクト進んでるのかな? マジで早く使いたいんだけど
913 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 23:02:56.60 ID:zrPw7vNx.net] ここまでを簡単に解説すると、ハスケラはシッタカブラー。
914 名前:デフォルトの名無しさん mailto:sage [2015/07/08(水) 23:32:53.31 ID:oVqSZ92L.net] >>899 ほらよ。 int foo(char *, int); int bar(char *a, int b) { return foo(a + 10, b - 10); } _bar PROC ; COMDAT mov eax, DWORD PTR _b$[esp-4] add eax, -10 ; fffffff6H mov DWORD PTR _b$[esp-4], eax add DWORD PTR _a$[esp-4], 10 ; 0000000aH jmp _foo
915 名前:899 mailto:sage [2015/07/09(木) 05:48:11.05 ID:KPxfvpRW.net] >>903 おお! 「引数が全く同じ」って、値じゃなくて、数や型が同じってことね。サンクス。 逆に、なんで引数の数や型が同じじゃないといけないの? スタックポインタの調整が面倒だから?
916 名前:899 mailto:sage [2015/07/09(木) 05:57:34.42 ID:KPxfvpRW.net] いつのまにかGCCも末尾再帰じゃない末尾呼び出し最適化もやってた。引数の数や型が違っても。 Cでも需要があるのかな。 extern int foo(int); int bar(char *a) { return foo(10); } bar: .LFB0: .cfi_startproc movl $10, %edi jmp foo .cfi_endproc
917 名前:899 mailto:sage [2015/07/09(木) 06:13:19.89 ID:KPxfvpRW.net] www.drdobbs.com/tackling-c-tail-calls/184401756 にGCCがTCOする条件が解説されてた。Cだとややこしいけど需要はあるらしい。 連投&スレ違い失礼しますた。
918 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 06:35:27.16 ID:OEKsJpEx.net] >>904 >「引数が全く同じ」って、値じゃなくて、数や型が同じってことね。サンクス。 再帰で値が同じならそれは無限再帰と呼ばれる。 >逆に、なんで引数の数や型が同じじゃないといけないの? スタックポインタの調整が面倒だから? 引数の個数はcalleeではわからないから、面倒ではなく、出来ない。
919 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 08:19:53.49 ID:e+1UNYHr.net] >>907 >再帰で値が同じならそれは無限再帰と呼ばれる。 Cだと副作用でメモリの中身が変わってるかもしれない >引数の個数はcalleeではわからないから、面倒ではなく、出来ない。 Cだと同じ関数の型の見え方がcallerとcalleeで違ったりするからね。 >>906 みたく条件緩和できるがなかなかややこしい
920 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 09:12:59.14 ID:LXpNU/xq.net] >>901 VSの色んな機能を使えるなら欲しいけど、vimやemacsのプラグインと同じ事しか出来ないならいらん
921 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 10:48:24.29 ID:h1Dw9jX8.net] デバッガ観点で言うと末尾呼び出しの最適化されると バックトレースが不正確になるのでやっかい 大規模な開発ではあえて無効にされることもあるよ
922 名前:デフォルトの名無しさん mailto:sage [2015/07/09(木) 10:56:32.05 ID:sAbBvj66.net] >>909 使えないの・・・?(´・ω・`) 詳細しらないけどきっと使えるんじゃね? VSのデバッガ使いたい
923 名前:デフォルトの名無しさん [2015/07/10(金) 07:10:09.65 ID:0h1M+LeE.net] CSS使えない奴よりマシ
924 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 10:31:36.54 ID:j3g7NrlE.net] (A -> R) -> R は継続モナドになるわけだが、 R -> A や A -> R もモナドにできるの?
925 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 11:04:46.48 ID:XOUMSF+T.net] CSSいらない >>913 m (r -> a) m (a -> r) モナドにしたったで
926 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 12:28:35.80 ID:j3g7NrlE.net] >>914 returnと>>=はそれぞれどうなるの?
927 名前:デフォルトの名無しさん [2015/07/10(金) 13:29:21.43 ID:NSmmAGhS.net] >>915 つうか (-> R A)と(-> A R)で普通に関数モナドな。 return = const (>>=) f g = ¥x -> g ( f x ) x
928 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 13:50:04.51 ID:j3g7NrlE.net] (-> R A)はそれで分かったが、 (-> A R)のreturnと>>=は?
929 名前:デフォルトの名無しさん [2015/07/10(金) 16:23:11.40 ID:NSmmAGhS.net] >>917 >(-> R A)はそれで分かったが、 >(-> A R)のreturnと>>=は? あたま大丈夫?
930 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 18:30:43.38 ID:j3g7NrlE.net] は?
931 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 19:04:13.42 ID:l6c5ofse.net] たしかにあたま大丈夫じゃないリスクはゼロではないが、自動車より安全だ そして、自動車より安全と発言した人間が狂っていると断言できる者はあまり多くない
932 名前:デフォルトの名無しさん mailto:sage [2015/07/10(金) 23:42:39.10 ID:ucCSbhAH.net] >> 919 Rが具体的な型で、Aがなんでもいい型、って言いたいわけだね。 (A -> R) はモナドにならないよ。というか、Functor(共変関手)にならない。 代わりにContravariant(反変関手)になる。 newtype Op a b = Op { getOp :: b -> a } instance Contravariant (Op a) where contramap f g = Op (getOp g . f) (以上contravariantパッケージより) 共変関手にならない理由は、このサイトがわかりやすい。 kinokkory.hatenablog.com/entry/20131203/p1
933 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 09:25:20.24 ID:6sFnysGr.net] >>921 ありがと。 M(A)がモナドになる条件を簡単に言えるのかな?
934 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 09:30:00.73 ID:S9PAD2xf.net] Emacs使いはflycheckが便利そう https://github.com/flycheck/flycheck 既出ならスマソ
935 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 09:42:11.42 ID:Yc/lws0v.net] Cloud Haskellというものを知ったのですが こういったノード間通信ライブラリを使ってる方がいたら バリエーションや感触を教えてもらえないでしょうか もしくはベタに書いたほうがいいでしょうか
936 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 11:24:25.49 ID:aYDDmLdu.net] 単体のライブラリの質は人気に比例する気がする でもフレームワークや統合環境は質より量でごまかせるから人気はどうでもいい
937 名前:922 mailto:sage [2015/07/11(土) 13:00:32.09 ID:6sFnysGr.net] >>921 教えてもらったサイトの「正の位置・負の位置」で解決しました
938 名前:デフォルトの名無しさん [2015/07/11(土) 15:05:57.90 ID:8xsgKabx.net] 岡部健の新作が来たゾ〜
939 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 15:12:01.82 ID:V/wpM/3h.net] あの人はなんでブログの記事まで作って個人に対して反論してるんだろうね 反論記事って言い合いを面白がってみてる人以外には何の得もない気がするんだけどなあ
940 名前:デフォルトの名無しさん [2015/07/11(土) 16:20:10.41 ID:obYDcaZK.net] Haskellは仕事で使える? 使えるとどうなる?教えて
941 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 16:44:05.06 ID:aYDDmLdu.net] もし仕事で使えると、無料で色々教えるのが勿体無くなる
942 名前:デフォルトの名無しさん [2015/07/11(土) 16:46:52.16 ID:obYDcaZK.net] どういう時に使う?教えて詳しく
943 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 20:42:56.70 ID:/RrsVJlS.net] そりゃ自分のタスクを自動化するのに使うんだろと
944 名前:デフォルトの名無しさん mailto:sage [2015/07/11(土) 22:25:31.98 ID:6sFnysGr.net] >>921 やっぱり自分はアホだった。全然分かっていなかった。 ファンクターにはなるがモナドにはならないものがあるはずだが、 その例が作れん
945 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 00:46:11.12 ID:KOjB2nQF.net] x^n+y^m=z^r 解は存在するか.だれも解けないといわれたビール予想 解けた方だけどうぞ ttp://blog.livedoor.jp/superprojectx/archives/1030198512.html
946 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 0
] [ここ壊れてます]
947 名前:z0K.net mailto: HaskellのガベコレシステムってJavaのそれよりかなりショボいらしいじゃん [] [ここ壊れてます]
948 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 06:13:49.33 ID:/rMkRh/q.net] Haskell処理系のGCよく知らないけど、moving GCでも良いし 破壊的代入がなければwrite barrierもいらないから Haskellのほうが簡単というだけじゃなくて?>ガベコレ Javaは旧SunやIBMががんばった結果、細かい最適化はされてるだろうけど。
949 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 08:26:42.75 ID:zJqA9jr9.net] 科学的根拠もなくただショボいという意見は参考にならない もうJavaは無視してC++のようにGCショボいけど速いやつを参考にしよう
950 名前:デフォルトの名無しさん [2015/07/12(日) 11:00:37.13 ID:AGKmbBWc.net] C++はGCショボいというよりない。。 ということでrustやろうぜ!
951 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 11:10:50.31 ID:s7w6GHZY.net] RustもGCないじゃん
952 名前:デフォルトの名無しさん [2015/07/12(日) 11:44:20.38 ID:fsP2XOSV.net] >>939 RCあるぞ。
953 名前:デフォルトの名無しさん [2015/07/12(日) 12:48:25.98 ID:KGquBeD3.net] Haskellでどんな作業を効率化できますか? 一例を教えて下さい
954 名前:デフォルトの名無しさん [2015/07/12(日) 12:52:34.01 ID:fsP2XOSV.net] 型のついた構文木の操作
955 名前:デフォルトの名無しさん [2015/07/12(日) 13:07:29.47 ID:KGquBeD3.net] お前らがこんなことやってるより ストリーミングサイト作ったCavetube管理人のほうがすごいんだよなぁ
956 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 13:26:20.29 ID:kel+atw2.net] 誰々より誰々が凄いとかどーでもいいじゃん。 そんなの気にするより、そいつらのソース参考にするとかして Haskell を楽しんだ方が何倍も有意義だよ。
957 名前:デフォルトの名無しさん [2015/07/12(日) 13:33:21.56 ID:rAeLMId1.net] >>938 GCサポートは付いてるけどな。 RAIIで設計するとGCは遅くなるだけであまり意味ないから誰も使わないな。
958 名前:デフォルトの名無しさん [2015/07/12(日) 15:30:30.95 ID:ryFHmMNk.net] Cavetubeってなんですか
959 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 20:10:37.89 ID:abu6RaU0.net] 宣伝だろ
960 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 20:16:28.54 ID:bkprvq+c.net] Darcsはなぜgitに敗れたのか
961 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 21:16:22.96 ID:uwDfGRH4.net] HaskellはC言語で作ったライブラリをラップしてばかりだから、そもそもC言語製品に勝てるはずがなかった
962 名前:デフォルトの名無しさん [2015/07/12(日) 21:17:29.74 ID:fsP2XOSV.net] それは普通に正しい使い方なんだが。 最初からCと競合するような言語じゃない。
963 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 22:05:39.58 ID:zJqA9jr9.net] Cと競合しないならバイトコードインタプリタで十分 コンパイラのゴリ押しが良くない
964 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 22:06:55.79 ID:x1Gu8TTq.net] 既存の大量にあるCライブラリを利用しやすいかは大事なポイント
965 名前:デフォルトの名無しさん [2015/07/12(日) 22:18:58.68 ID:fsP2XOSV.net] >>951 >Cと競合しないならバイトコードインタプリタで十分 >コンパイラのゴリ押しが良くない 意味がわからん。 LLVMコードを出力するのとコンパイラとの境界ってなによ
966 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 22:24:58.59 ID:s7w6GHZY.net] >>940 RCをGCというならC++にもGCあるだろ
967 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 22:42:25.31 ID:bkprvq+c.net] JavaとかCは、明らかに駄目な応用先でも上の意向等で使わざる得ないことあるけどHaskell とかlispはそういうこと滅多にないでしょ
968 名前:デフォルトの名無しさん [2015/07/12(日) 22:43:02.61 ID:fsP2XOSV.net] >>954 その理解で何の問題もないと思うが。 RCがGCの主要実装方法のひとつだという点まで争いたいの?
969 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 22:47:38.71 ID:7yEOwALs.net] 明確な目的や条件を設定せずに やたら言語の優劣をつけたがる奴は まともな開発経験も知識も能力もない アホだと断定していいだろ。
970 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 23:08:59.10 ID:bkprvq+c.net] JavaやCとHaskell の単純な比較はできない
971 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 23:48:11.69 ID:s7w6GHZY.net] >>956 >>938 がC++はGCないからRustやろうぜとか言ってたんですよ
972 名前:デフォルトの名無しさん mailto:sage [2015/07/12(日) 23:48:45.86 ID:zJqA9jr9.net] >>953 バイトコードを外部に出力する機能があったら仕様変更の影響が外部に伝播するから その機能が無くても十分なら無い方が良いってこと
973 名前:デフォルトの名無しさん [2015/07/12(日) 23:53:56.51 ID:fsP2XOSV.net] >>959 なるほど。 Rustのリージョナルポインタによるメモリ管理を GCと間違えたんだろうな。
974 名前:デフォルトの名無しさん [2015/07/13(月) 00:22:31.58 ID:FwNm1COs.net] Java ビジネス C 組み込み こういう風になっています。 富豪プログラミングが出来る所でCを使う必要性はあまり無い。
975 名前:デフォルトの名無しさん [2015/07/13(月) 00:58:02.40 ID:QeuWC4Dg.net] >>961 いやrustにGCがないのは知ってる
976 名前:デフォルトの名無しさん mailto:sage [2015/07/13(月) 02:59:06.50 ID:6i7dJOia.net] Rustなんて放り投げてATSやろうぜ!
977 名前:デフォルトの名無しさん [2015/07/13(月) 07:50:41.60 ID:Ml9NNXKo.net] >>963 だからRCあるだろうが!
978 名前:デフォルトの名無しさん [2015/07/13(月) 08:16:40.56 ID:5ZThykAi.net] 毛はキータで相変わらず行間が読めないから、 RSSじゃなくて毛自身がコメ書いてる事を自分でバラす事になるんだな(笑)
979 名前:デフォルトの名無しさん mailto:sage [2015/07/13(月) 10:09:26.25 ID:gqfr1aBw.net] Haskell流行って長いけどなんか実用になるような成果でた?
980 名前:デフォルトの名無しさん mailto:sage [2015/07/13(月) 10:57:00.94 ID:cCxFevQ1.net] 型のついてない成果を型のついた成果に翻訳できる 右から左に流すだけの虚業のように見えるのは仕方ない
981 名前:デフォルトの名無しさん [2015/07/13(月) 11:18:47.64 ID:Ml9NNXKo.net] 普段から業務に使ってる人間からすると意味不明な問いだ。
982 名前:デフォルトの名無しさん mailto:sage [2015/07/13(月) 11:35:14.43 ID:UsYUluT9.net] 「プログラム」の何たるかを 丸っきり分かってない一部のバカにとっては、 「一般ユーザが利用可能なパッケージソフト」だけが 「実用的な成果物」なんだろ。
983 名前:デフォルトの名無しさん mailto:sage [2015/07/13(月) 12:24:32.84 ID:O7974LG1.net] Haskell がパッケージソフトの作成に向いていないのは何故?
984 名前:デフォルトの名無しさん mailto:sage [2015/07/13(月) 13:38:57.82 ID:tAtIl5MT.net] Javaなんて何のメリットもないのに使わざる得ない時があるのが謎
985 名前:デフォルトの名無しさん mailto:sage [2015/07/13(月) 13:40:49.84 ID:cCxFevQ1.net] exeの作成は問題ないがdllの作成に向いているのはCしかない C++でさえdllの作成に向いていない
986 名前:デフォルトの名無しさん mailto:sage [2015/07/13(月) 15:07:15.86 ID:6ctAAsGS.net] エンタープライズ系のアプリケーションでは最適解のひとつだから 仕方がない。 >>962 のとおり。
987 名前:デフォルトの名無しさん mailto:sage [2015/07/13(月) 18:30:29.23 ID:htwOfG4r.net] C は実用というよりは、もう教養の部類だからね‥ C がわからないようでは、そいつの言うことは信用できない builder.japan.zdnet.com/script/sp_c-programming-language/20370255/
988 名前:デフォルトの名無しさん mailto:sage [2015/07/13(月) 19:05:07.18 ID:xmoiVj3U.net] >>538 特定言語を知らん事を根拠にした レッテリングにはあんまり賛同できないな。
989 名前:デフォルトの名無しさん mailto:sage [2015/07/13(月) 19:27:16.94 ID:9wI4712X.net] windows7でhaskellplatform使ってるんですが、 Data.HashTableが入ってないようなので cabal install hashtablesして、成功したのですが 未だにimport Data.HashTableで失敗します。 何がいけないのでしょうか?
990 名前:デフォルトの名無しさん [2015/07/13(月) 19:50:15.17 ID:Ml9NNXKo.net] >>977 >Data.HashTable Data.HashTableならbaseパッケージに入ってるんで、 hashtables要らないよ。 hashtables使うならData.HashTable.ST.Basicとか Data.HashTable.ST.Cuckooをimportしないと。 多分どこかでなんか勘違いしてると思う。
991 名前:デフォルトの名無しさん [2015/07/13(月) 19:56:02.53 ID:Ml9NNXKo.net] って、base-4.8からData.Hashtableなくなったのか〜 hashtables入れて import Data.HashTabl.IO でいいんじゃないかな。
992 名前:デフォルトの名無しさん mailto:sage [2015/07/13(月) 20:11:29.72 ID:Ml9NNXKo.net] いちおうミニマルなサンプル {-# LANGUAGE ScopedTypeVariables #-} module Main where import Data.HashTable.IO as H type HashTable k v = H.CuckooHashTable k v main = do (h::HashTable Int String) <- fromList [(1,"tata"),(2,"titi"),(3,"toto")] insert h 4 "tete" l <- toList h print l
993 名前:デフォルトの名無しさん mailto:sage [2015/07/13(月) 21:15:03.79 ID:6helnrAX.net] ありがとうございます! 動作確認まだ出来てませんが、何とか先に進めそうです!
994 名前:デフォルトの名無しさん [2015/07/14(火) 14:33:35.00 ID:d1S9qbgP.net] reduce関数やrange関数やmap関数は、命令型のループでしか書けないことをわかってな奴が居るな。 ノイマン型コンピュータというハードウェアは究極的には命令型でしか動作しない。 関数型の機械語なんて存在しない。 ここ、重要ね。反論はないと思うけど
995 名前:デフォルトの名無しさん mailto:sage [2015/07/14(火) 14:35:07.84 ID:Bu3+R9wf.net] >>982 だからなに?
996 名前:デフォルトの名無しさん [2015/07/14(火) 15:11:21.95 ID:GNUjvMWE.net] 言ってみたかっただけ
997 名前:デフォルトの名無しさん mailto:sage [2015/07/14(火) 15:22:11.58 ID:RRB/2bWF.net] >>982 関数型プログラマならBackusのCan programming be liberated from the von Neumann style?くらい読んでるわよ! バカにしないでくれる!?
998 名前:デフォルトの名無しさん [2015/07/14(火) 15:26:34.91 ID:lfdsryMV.net] 極限まで高めた並列性が最高性能を引き出す・・・Haskellで書かれたプログラミンは・・神! 一万を超えるメニーコアが・・・Haskellは・・・神! などと宣伝しすぎたから言われるんじゃないの。 結局速くなってないし。
999 名前:デフォルトの名無しさん mailto:sage [2015/07/14(火) 15:57:28.35 ID:krmtTpmZ.net] 宣伝には金がかかる その金を汚いと思うかどうかは自由だが少なくとも金をかけてないやつは潔白だろ 関係ないやつを巻き込むなよ
1000 名前:デフォルトの名無しさん [2015/07/14(火) 16:16:14.81 ID:lfdsryMV.net] 速くなってない・・・騙された・・・Haskell死ね! と思う人がいても不思議じゃないだろ。 宣伝しすぎたんだよ。
1001 名前:デフォルトの名無しさん mailto:sage [2015/07/14(火) 16:18:10.13 ID:Bu3+R9wf.net] そんなに宣伝されてたの?
1002 名前:デフォルトの名無しさん [2015/07/14(火) 16:44:47.28 ID:lfdsryMV.net] そうだねえ。 チラシお断りと貼ってあるのに、ドンドン入れていく感じだね。 Haskellの宣伝がひどいので、コメント欄を無くしたブログも多かったんだよ。 そこまで宣伝したのに、宣伝されたことが全然実現されていないからね。 宣伝では5億並列で一ナノ秒以下を実現とか平気で言ってたからね。 もともと無理だったんだよ。
1003 名前:デフォルトの名無しさん mailto:sage [2015/07/14(火) 17:50:31.44 ID:Bu3+R9wf.net] >>990 どこの世界のお話ですか? 君の中の平行世界?
1004 名前:デフォルトの名無しさん mailto:sage [2015/07/14(火) 18:47:54.12 ID:JhU5Z9W0.net] >>982 >reduce関数やrange関数やmap関数は、命令型のループでしか書けないことをわかってな奴が居るな。 >ノイマン型コンピュータというハードウェアは究極的には命令型でしか動作しない。 >関数型の機械語なんて存在しない。 >ここ、重要ね。反論はないと思うけど データフローマシンのような非ノイマン型アーキテクチャとか長年試作されてきたし 最近もReduceronはじめFPGAでグラフ書換プロセッサが実装されてるわけだが、 なにを根拠に「存在しない」とか言ってるのこのひとは?
1005 名前:デフォルトの名無しさん [2015/07/14(火) 19:33:26.76 ID:X8vX3uS6.net] 次スレ peace.2ch.net/test/read.cgi/tech/1436869629/
1006 名前:デフォルトの名無しさん mailto:sageteoff [2015/07/14(火) 19:48:07.17 ID:V8pOZFXs.net] 次スレは当スレの約17時間後に立った下記重複スレを、実質Part29として活用しましょう。 当スレのレス数が1000になるまでは当スレを、それ以後は下記スレをご利用ください。 >>993 のスレは(残っていれば)実質Part30として使います。 (実質Part29) 関数型プログラミング言語Haskell Part28 [転載禁止](c)2ch.net peace.2ch.net/test/read.cgi/tech/1428597032/
1007 名前:デフォルトの名無しさん mailto:sage [2015/07/14(火) 20:33:29.57 ID:9t3W2eIV.net] HaskellとErlangの並列性能のベンチマークあったけどボロ負けでしたよ https://github.com/worksap-ate/demo/blob/master/Cloud-Haskell.md
1008 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 00:18:57.00 ID:jeRkgPlX.net] 趣味でしか触ってなくて、python をやってから haskell に来たのでそれはもう僕からしたら haskell は素敵に速いのです
1009 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 00:51:31.43 ID:HWtOn7Kk.net] オブジェクト指向 アクターモデル インターネット 圏論 集合論 非ノイマン型はどれですか? 全部ですか?
1010 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 01:10:17.43 ID:x7KlsBjr.net] >>997 そもそもそれらのどこにコンピュータ・アーキテクチャが 含まれているのか教えてくれ。
1011 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 04:12:42.40 ID:WlnCwIoX.net] いまだ役たたず
1012 名前:デフォルトの名無しさん mailto:sage [2015/07/15(水) 04:18:56.45 ID:meQVGR7r.net] >>1000
1013 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。
1014 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています