1 名前:デフォルトの名無しさん mailto:sage [2007/10/30(火) 20:28:13 ] haskell.org www.haskell.org/ 日本語サイト www.sampou.org/cgi-bin/haskell.cgi www.shido.info/hs/ 過去ログ 関数型プログラミング言語Haskell Part1 pc.2ch.net/tech/kako/996/996131288.html Part2 pc2.2ch.net/test/read.cgi/tech/1013846140/ Part3 pc8.2ch.net/test/read.cgi/tech/1076418993/ Part4 pc8.2ch.net/test/read.cgi/tech/1140717775/ Part5 pc8.2ch.net/test/read.cgi/tech/1149263630/ Part6 pc11.2ch.net/test/read.cgi/tech/1162902266/ Part7 pc11.2ch.net/test/read.cgi/tech/1174211797/ ・2chの仕様により、行頭の半角スペースは表示されません。 コードをインデントしたいときは、代わりに または全角スペースを使うことができます。
541 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 21:11:23 ] LuaってHaskell系だったのか pc11.2ch.net/test/read.cgi/dtm/1194648279/216
542 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 21:29:53 ] そのスレで既に十分突っ込まれてるじゃないか
543 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 22:42:17 ] haskellのプログラムは巨大化する傾向があるようですが、 Cで作ったファイル並みに小さくするコンパイルオプションとかってないですかね?
544 名前:543 mailto:sage [2008/02/21(木) 22:43:03 ] すみません、言葉足らずでした。 haskellで作った実行ファイルが巨大化する傾向がある、といいたかったのです。
545 名前:543 mailto:sage [2008/02/22(金) 20:08:04 ] とりあえず1/10ぐらいのサイズにしたいのです。
546 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 21:22:26 ] Cだって大きなプログラム作れば大きいだろ。
547 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 21:29:57 ] とりあえず ・GHCの最新版を使う ・最適化オプションを有効にする ・strip くらいじゃないか? あとUPXとかで圧縮するのが有効というのを読んだ
548 名前:543 mailto:sage [2008/02/22(金) 22:16:46 ] >>546 論外
549 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 00:47:37 ] 昔のGHCならCのソース出力するオプションがあったらしいんだが,今はないのか? そもそもなんで実効ファイルが巨大化するのか調べた上での質問なら答えは直ぐに見つかるんだけどな
550 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 00:49:21 ] 現状ghcではruntimeだけで200KBくらいになってしまうので無理かと。 jhcとかyhcならば判らないですけども。
551 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 08:40:01 ] libcや基本DLLよりずっと小さいよ。 Windowsの場合は、サードパーティが使える標準配布方式がないから、 静的リンクするか、インストーラー配布形式が必要になって、 それでこういう質問が増えるんだろうね。 お決まりの開発環境を使わないと、配布しづらい。
552 名前:デフォルトの名無しさん [2008/02/23(土) 13:39:30 ] ghc だって libc に依存してるんでしょ
553 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 17:07:48 ] C++だってhello worldでもバカ正直にスタティックリンクすれば何百KBとかなったりするじゃん ダイナミックリンクでごまかしてたりするけど 機能持たせた言語の実行ファイルサイズが膨らむのはトレードオフ
554 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 07:49:13 ] Craft買って読んでますが、練習問題の解答ってどっかにありますでしょうか。
555 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 12:24:26 ] 以前、IOモナド関連部分の回答を適当なワードでググった時はヒットしたよ 10分くらい探したけど
556 名前:554 mailto:sage [2008/02/24(日) 19:38:46 ] つまり、ちゃんとした解答集のようなものは無いっちゅう ことですかorz そんな難しいものも少なそうなのでいいのかな
557 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 19:51:21 ] >>556 現状では、ある程度関数型言語でのプログラミングの経験をつんだ人が Haskellを触るという感じなので、 言語仕様を見たらわりとすぐに使えるという人向きの文書しか出回っていない。 そういう意味では初心者はとっつきにくいかもしれないね。
558 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 20:19:53 ] また公式が落ちてやがる!!!!!!!! なめやがって!! マジ切れそうだ
559 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 20:47:32 ] すみません、こちらのファイアウォールのせいで公式につながらなかっただけでした・・・ お騒がせしました
560 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 22:59:49 ] >>558-559 wwwwwwwww
561 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:50:16 ] wwwwwwwwwww
562 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:58:36 ] wwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
563 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 02:08:33 ] つwww.blue.sky.or.jp/grass/
564 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 20:06:50 ] 大卒で正社員じゃない奴ってこのスレに多そうだなw 知ってるか?高卒の生涯賃金って高卒の半分なんだぜwww_? 中卒なんてもってのほか 可哀想にお前ら そんな俺はもう内定貰ってこのスレいますけどねw
565 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 20:18:49 ] あいぉ(^ω^ > 高卒の生涯賃金って高卒の半分なんだぜwww_? > 高卒の生涯賃金って高卒の半分なんだぜwww_? > 高卒の生涯賃金って高卒の半分なんだぜwww_? > 高卒の生涯賃金って高卒の半分なんだぜwww_? > 高卒の生涯賃金って高卒の半分なんだぜwww_? > 高卒の生涯賃金って高卒の半分なんだぜwww_? > 高卒の生涯賃金って高卒の半分なんだぜwww_? > 高卒の生涯賃金って高卒の半分なんだぜwww_? > 高卒の生涯賃金って高卒の半分なんだぜwww_? > 高卒の生涯賃金って高卒の半分なんだぜwww_? > 高卒の生涯賃金って高卒の半分なんだぜwww_? > 高卒の生涯賃金って高卒の半分なんだぜwww_? > 高卒の生涯賃金って高卒の半分なんだぜwww_? > 高卒の生涯賃金って高卒の半分なんだぜwww_? > 高卒の生涯賃金って高卒の半分なんだぜwww_?
566 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 20:20:52 ] >高卒の生涯賃金って高卒の半分なんだぜwww_? 再帰的ですねwwwwww chingin x = chingin x / 2 こんな所でしょうか。 ちなみにスタックオーバーフローしましたが何か。
567 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 20:22:51 ] ちなみにこれね society6.2ch.net/test/read.cgi/gline/1190374317/
568 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 20:26:57 ] どうやら釣られてしまったようだ。。。
569 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 20:43:02 ] >>566 せっかくHaskellなんだから chingin = chingin / 2 でいいよ 解は0とNaNと±Infと⊥だな
570 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 21:39:37 ] Nan = NanはFalseなんじゃないの?
571 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 10:33:53 ] 何を言っているのかね
572 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 15:30:47 ] やってみた。 > 0/0 NaN > 0/0 == 0/0 False > 1/0 Infinity > 1/0 == 1/0 True > 1/0 == 1/0/2 True
573 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 15:32:37 ] ⊥なんて解で出てくるの?
574 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 17:18:37 ] >>573 undefined と undefined / 2 は、どっちも同じ結果になる
575 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 14:35:34 ] 関数型言語関連で購読おすすめのブログをいくつか教えてください
576 名前:デフォルトの名無しさん mailto:sage [2008/02/28(木) 15:44:34 ] >>575 このスレ的にはここ ttp://planet.haskell.org/
577 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 21:06:53 ] haskellerの皆さんって、元々はSchemeとか使っていたんでしょうか? 自分、関数型はハジメテでちょっと戸惑いがあったんですが、SICPを読んでみたら 何か分かってきました。 Haskellは今のところそういう文脈というか、経緯を知っている人たち向けってこと なんでしょうかね。
578 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 21:12:23 ] 俺はC++から入った 他の関数型は、SML入門をちょっとwebで読みあさった経験しかなかった
579 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 23:45:49 ] Common Lisp -> OCaml -> Haskell
580 名前:デフォルトの名無しさん mailto:sage [2008/02/29(金) 23:54:20 ] WebProg -> Haskell
581 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 00:03:12 ] C++ -> Haskell (あまりのパラダイムの違いに混乱中)
582 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 01:50:01 ] >>581 C++のconcept(次の標準で入る)とHaskellのtype classは同じ。 自分は 雑多なLisp→Common Lisp→Miranda, CLOS, ML, C++→Haskell, Scheme, C++
583 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 02:00:01 ] >>577 そうですね。 関数型言語での再利用とオブジェクト指向言語での再利用では 毛色が全く違うので戸惑うでしょうね。
584 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 02:03:51 ] 関数型言語といっても、遅延評価が入るだけでかなり質が変わってきますよ。 LispやMLの方がCプログラマには分かりやすいでしょう。
585 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 02:20:11 ] >>577 Haskellはそういう知識を得ることが楽しい人向けの言語。 先に知っていても、必要だと思ってそこで勉強しても、どっちでもいいと思う。 まあとにかく世界の広がる言語だと思う、Haskellは。 Schemeも面白い。
586 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 02:25:30 ] モナドを学ぶのにオススメの書籍やwebサイトはありますか 一応一通り検索して解説を読んでみたんですがいまいち概念を把握できてないです 使う分には困らないんですが
587 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 11:56:49 ] >>586 圏論の基礎
588 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 12:12:57 ] >>586 つ >>421
589 名前:デフォルトの名無しさん mailto:sage [2008/03/01(土) 15:05:15 ] 母:順へ げんきですか。いまめーるしてます 順:うるさい死ね メールすんな殺すぞ 母:ごめんね。おかあさんはじめてめーるしたから、ごめんね 順:うるさいくたばれ、メールすんな 母:ちゃんとご飯食べてる? お金送りましょうか? 順:うんありがとう。かあさんこそ体とか大丈夫?
590 名前:577 mailto:sage [2008/03/01(土) 19:22:00 ] なるほど、やはりLispからの方が多いんでしょうかね。 自分はLisp系知らずにHaskellやろうとして、map、fold、zipWithなどのリスト操作が 最も基本的なものとして扱われているのがピンときませんでした。 色々文書読んだりした後で、SICPを読んでみたら凄い分かってきましたよw。どうも そういう文脈にある人々向けにドキュメントなどが作成されているなぁと。JavaやC# とかが、C、C++の文脈を知っている人向けのドキュメントが多いのと同じでしょうかね。
591 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 01:21:53 ] map, reduceは他の言語でも、 コレクション周辺でサポートされてるよね? ただgeneric function系じゃないと、 ちょっと趣きが違うから戸惑うのかも知れないが。
592 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 04:50:00 ] >>590 まず、今までループで処理してたところを全部再帰で考え直してみようよ。 再帰処理の部分を一般化して関数にできないかどうか考えてみようよ。
593 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 04:50:39 ] SICPってMITの1年生用の教科書でしょ?
594 名前:577 mailto:sage [2008/03/02(日) 08:02:16 ] >>591 ありますけど、理科系研究の実習用プログラムとかではない限り、あまり 使われないんじゃないかと思います。実際、言語の入門書類でも大きくは 扱われませんよね。 >>592 再起はそんなに戸惑いはありませんでした。どちらかと言えばループが 手続きの部分として扱われるのに対して、関数型ではそういう書き方は あまりしない(醜いコードとなる)ってことですね。 >>593 そうです。すごい良書だと思います。
595 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 10:43:26 ] >>594 > 実際、言語の入門書類でも大きくは扱われませんよね。 入門書は年々数が増えていっていると共に、 糞本の割合が増えていっているから、 入門書一般の常識はいまや非常識といっていい状態。 本格的に取り組む入門書は嫌われるから。 関数型言語、特に本場の本は良書が多くてそういう心配はないんだけど。
596 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 10:51:29 ] 古くても良書とされている入門書を店頭にわかりやすく並べている 本屋の数は、日本に人間の指の数ぐらいしか無いんではなかろうか。 他は次々と出る駄本の新刊を並べてるだけ。
597 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 10:53:22 ] Rubyなんかだとmapやinjectを使うのが当たり前かと思ったけど、そうでもないのか
598 名前:577 mailto:sage [2008/03/02(日) 11:26:03 ] >>595 自分はSICP読んで、何でもっと早くに手に取らなかったのか、と後悔してます。 >>597 Rubyのそういった機能は関数型由来のものですよね。C言語系列の手続き型 にはあまり登場しないんじゃないかと思います。
599 名前:デフォルトの名無しさん mailto:sage [2008/03/02(日) 12:03:41 ] 使えないand/or使いたがらないand/or嫌悪する奴もまたいますな
600 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 23:34:31 ] and と or って左結合?
601 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 13:53:14 ] THE HITCHHIKER'S GUIDE TO THE HASKELL 「HASKELL の歩き方」 ttp://ha6.seikyou.ne.jp/home/yamanose/haskell/home.html web上の日本語の入門文書で、言語全体をカバーしてるのは初めてじゃないだろうか
602 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 18:12:31 ] >>601 なぜに自転車屋のホームページ?w ラジオ部 って何?w モナドに関して、あえて説明しないってのは、入門としてはありかもね。
603 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 23:38:42 ] Parsecを理解できる書籍って 普通のHaskellが妥当かな?
604 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 08:55:56 ] ひらがなで書かないと書籍名に見えないw
605 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 09:07:55 ] >>603 つ www.cs.nott.ac.uk/Department/Staff/gmh/monparsing.ps
606 名前:602 mailto:sage [2008/03/07(金) 13:57:47 ] よく見ると>>601 って、 手続き言語的にHaskellを解説してるように思えるな…。 こういう入門書でHaskellを学ぶ人が多くなると、 オブジェクト指向の時みたいに混乱しそう…。 初心者のオレでも?なコードがある…。
607 名前:606 mailto:sage [2008/03/07(金) 15:35:46 ] あぁ!「?なコード」は >>601 でなくて、>>601 で参照してる↓だった 関数型プログラミング言語 Haskell 早巡り ha6.seikyou.ne.jp/home/yamanose/haskell/INTROHUG.HTML
608 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 17:08:28 ] 最近のライブラリはほとんどarrowベースになってるんだなぁ・・・
609 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 21:39:33 ] >>608 自分、Craft読み終えたばかりでモナドも入り口しか知らない… 道は遠いなぁ
610 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 18:58:13 ] ghcに-prof -auto-allを付けると最適化が弱まるのはいやがらせか? フルに最適化の掛かったコードのプロファイルを取るにはどうすればいいんだ
611 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 19:14:50 ] >>610 最適化ありとなしなら違うだろうけどそれぐらいなら大差つきそうな感じもしないし だいたいでいいんじゃない?
612 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 19:55:01 ] >>611 いや、一番内側のループにGHC.IOBase.>>の呼び出しやらunboxing/reboxingやらが残るんだ もともと最適化で余計なものが全部消えることに期待しているソースなので、影響が大きい 実際、プロファイル版だと通常版の7倍くらい時間が掛かる もちろんプロファイルのオーバーヘッドもあるだろうけど、別のソースだと3倍くらいで済むので、 最適化がうまく効かないことの要因が大きいと思う
613 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 13:44:15 ] wxHaskell 0.10.3 rc1が出てた。
614 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 16:47:24 ] wxHaskellをスタティックリンクする方法ありませんか?
615 名前:デフォルトの名無しさん [2008/03/18(火) 09:56:50 ] Gtk2Hsと比べてどうなの?
616 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 21:37:58 ] ghc test.hs -o test とやった時に生成される test.hi test.o test.manifest この3つのファイルを生成させなくする方法ってないですか?
617 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 21:52:22 ] >>616 manifestファイルの生成は-fno-gen-manifestで抑止できる ただし多少の副作用がある。詳しくはマニュアル参照 oとhiの生成を止めるのは多分無理。これなしじゃ分割コンパイルできないし ファイルが残るのが嫌なら、ghcを実行した後にoとhiを削除するスクリプトでも組めばいい
618 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 22:10:49 ] >>617 ありがとうございます スクリプト書いて我慢することにします。
619 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 20:13:49 ] Introduction to Functional Programming Using Haskell ¥ 11,554 (税込) ペーパーバックでこれって…。何でこんな高いの?
620 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 21:11:09 ] Bird大先生の書いた素晴らしい本なのでその価値はあります。 文章はもちろんコードが素晴らしいです。
621 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 21:19:32 ] >>619 需要と供給の関係じゃない?
622 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 21:33:24 ] >>621 Craftとかと比べるとあんまり売れ筋じゃないってこと?
623 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 21:47:52 ] >>619-620 「関数プログラミング(using Miranda)」はもっと安いYO!i
624 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 22:32:20 ] 正直コードのぱっと見はSASL系のMirandaの方が好きだった。比Haskell
625 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 22:54:32 ] >>619 円高なんだから.comの書店から輸入すれば安いYO!
626 名前:デフォルトの名無しさん [2008/03/20(木) 13:46:58 ] >>624 どの辺が違うの?
627 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 13:48:34 ] >>624 Mirandaスレ逝けYO!
628 名前:619 mailto:sage [2008/03/20(木) 13:57:36 ] っていうか、もう買っちゃったんだけどw ついさっき届いたんだが・・・チョっw、Craftとかよりも紙が安っぽいwww これ、11,554円か・・・。頑張って自分のモノにしないとなw
629 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 14:32:26 ] 1966年にP.J.LandinがISWIMという言語を作ったのがその起源で、SASL, Mirandaという後継言語を経て、HaskellとCleanが生まれました。 これらは、全て「遅延評価」を評価戦略におくプログラミング言語であり、「純粋関数型言語」と呼ばれるグループです。 SASL系のMiranda???イミフ。
630 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 19:31:56 ] 1954年にJ.BackusがFORTRANという言語を作ったのがその起源で, Algol, Cという後継言語を経て、C++とJavaが生まれました。 これらは、全て「副作用による状態の更新」を実行の基礎とするプログラミング言語であり、「手続き型言語」と呼ばれるグループです。 Algol系のC???イミフ。
631 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 19:39:51 ] wxHaskell 0.10.3 が出たみたい。 sourceforge.net/project/showfiles.php?group_id=73133
632 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 23:22:00 ] 遅延評価よりもしっくりくる言葉はないものだろうか 直訳で不精評価とか?
633 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 23:37:01 ] >>632
634 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 23:45:23 ] SASL系のMirandaって何?Haskellは何系なの?クワシク。
635 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 00:00:20 ] HaskellはMiranda系です
636 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 00:20:12 ] >>630 なにが意味不なのかわかんね
637 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 00:53:22 ] 英語が難しくてよく理解できないのでつがw
638 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 10:58:06 ] >>629 なにが意味不なのかわかんね
639 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 11:43:24 ] Point-free styleで \a b -> a*b + a/b を書くにはどうすればいいですか? 一般に,同一の引数を複数回使うような関数はどう定義すればいいですか? さらに例えば2引数a, bを取って,それらを複数回使い, その場所が構文木の深さで並べたとき交互に入り混じるような関数はどう定義すればいいですか? \a b -> a + exp(b + exp a) みたいな. * idとかを使って形式的に同じ深さにする(例えば snd(id b, id a) + exp(id b + exp a) とする) * 2変数関数に同じ引数を与えるようなapplyをあらかじめ定義しておく (そう言えばSコンビネータは S f g x => f x (g x) でxが2回出てくるなぁ...) が鍵かなーと思ってますが,一般にはどうすればいいのか.
640 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 13:18:34 ] Control.MonadとControl.Monad.Instancesをインポートするとこの二つが使える ap :: (a -> b -> c) -> (a -> b) -> a -> c liftM2 (.) :: (a -> b -> c) -> (a -> d -> b) -> a -> d -> c どっちも便利
641 名前:デフォルトの名無しさん mailto:sage [2008/03/23(日) 13:51:22 ] s = \ x y z -> x z (y z) k = \ x y -> x i = \ x -> x -- f = \ a b -> a * b + a / b f = ((s ((s (k s)) ((s ((s (k s)) ((s (k k)) (k (+))))) ((s ((s (k s)) ((s ((s (k s)) ((s (k k)) (k (*))))) ((s (k k)) i)))) (k i))))) ((s ((s (k s)) ((s ((s (k s)) ((s (k k)) (k (/))))) ((s (k k)) i)))) (k i)))