1 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 16:41:29 ] 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/ Part8 pc11.2ch.net/test/read.cgi/tech/1193743693/ ・2chの仕様により、行頭の半角スペースは表示されません。 コードをインデントしたいときは、代わりに または全角スペースを使うことができます。
67 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 01:04:34 ] >>27 数学基礎論がまるで分からないんだね。
68 名前:初心者修業中 mailto:sage [2008/05/23(金) 02:23:32 ] >>66 data Hoge = Hoge0|Hoge1|Hoge2|Hoge3|…|Hoge10 これじゃ駄目?
69 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 07:10:08 ] 数学できない奴くるな
70 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 13:34:41 ] haskell関係の文書(特に論文)を読みたくてhaskell.orgをあさってるんだけど 沢山あるからどれを読もうか迷ってしまう このスレ的に、コレは読んでおいて損は無い!って奴あったら教えてくらはい 今のとこ読んだのはImperative functional programmingとLazy vs Strictと Haskell vs. Ada vs. C++ vs. Awk vs. ...
71 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 13:47:07 ] Tackling the awkward squad
72 名前:デフォルトの名無しさん [2008/05/23(金) 13:49:13 ] もうここで紹介される論文はすべて読んだんだよなぁ。 2chは時代遅れ情報しか出てこねーな。noobどもしかいねぇ。
73 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 13:53:08 ] 2chの情報に価値がないと思うなら立ち去ればいいじゃないか!
74 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 14:18:52 ] >>71 落として読んでみるよー 他にもあったら是非教えてクレクレ >>72 玄人さん面白かった論文教えて
75 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 14:36:10 ] >>69 そんな事を言う奴が来るな! 数学なんぞできんでもプログラムはできる!!
76 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 14:49:15 ] 最初のうちはな 手続き型にどっぷり浸かった後で関数型言語を触って嵌ってしまったやつは やつは皆計算機科学の世界に飛び込み二度と帰ってこなくなっちまうものなのさ 「コード書いてるより数式弄くってるほうが楽しいおwwww」 俺の同僚の最後の言葉さ・・・
77 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:03:56 ] だからオブジェクト指向が生き残るのですね
78 名前:デフォルトの名無しさん [2008/05/23(金) 18:02:35 ] 最近、自作のソースをarrowで設計段階からやり直そうとしているんだけど、 いまいちメリットが無いんだよなぁ。 前のコードの方が短かったし、arrowにしたせいで複雑になってしまうことも多々ある。 arrowのメリットを具体的に教えてくださいよ。 論文読んでみてもarrowのうまみが伝わってこないんだよね。
79 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 18:31:30 ] 難読化
80 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:12:20 ] どんなものが分かりやすいかなんて人それぞれだし arrowを使ったほうが分かりやすいって感じる人も少しはいるでしょうから そういう人が勝手に使ってればそれでいいんでしょう
81 名前:36 ◆K0BqlCB3.k [2008/05/23(金) 19:20:21 ] arrowを使ったプログラミングでは設計段階で図式化しやすいところにうまみがあるのかな?
82 名前:36 ◆K0BqlCB3.k mailto:sage [2008/05/23(金) 19:21:01 ] ミスってコテハンつけちゃったぜ
83 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:39:51 ] >>82 warrockに帰れwww
84 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:58:07 ] >>78 (モナドと比較した場合)arrowの旨みって、モナドではないがarrowである型があるっていう一点じゃないの? そういう型を扱うときはarrowの枠組みが便利というだけ
85 名前:36 ◆K0BqlCB3.k mailto:sage [2008/05/23(金) 20:07:01 ] っていうかさ、俺は(\x -> (x, x))とかして処理を分けるのをいちいち書くのがめんどくさいときにarrow使うぜ
86 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 20:12:53 ] >>85 確かにそれは慣れれば便利かもな でも、Arrow (->)という特定のインスタンスを使ってるだけなら、 >>78 が言ってるようなArrowの旨味とは別の話な気がする
87 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:35:21 ] >>71 ちょwwBeautiful Codeって本みながら、たまたまスレ覗いたら、 本の中でソレ紹介されてたぞww
88 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 00:10:42 ] arrowって今のところ 解析関係かデバッグ関係 形式証明以外使えそうな分野 無い
89 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 04:49:01 ] 分かってねーな
90 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 04:59:31 ] 分かってねーなじゃわからないっす。
91 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 22:25:11 ] >>76 関数型が好きな理由は、所謂プログラミングの面白さがあるからではないな。
92 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 00:01:55 ] do { ... } は「アクションっていう値」という認識でいいの?
93 名前:初心者修業中 mailto:sage [2008/05/25(日) 00:18:03 ] >>92 do構文はbind演算子で結合された式を 手続型言語っぽく見せる糖衣構文と認識してますが。
94 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 01:33:41 ] >>92 do{...}が値を持つ単なる式であるか、という質問ならそのとおり >>93 が言うようにdo式は構文糖で、bind演算子(>>=)の略記 do式の値が(広い意味で)アクションか、という質問ならそのとおり 具体的には、IOモナドに関するdo式なら値はIOアクション、リストモナドならリスト、という具合
95 名前:92 mailto:sage [2008/05/25(日) 01:35:15 ] >>94 そういう意図の質問でした。ありがとう。
96 名前:初心者修業中 mailto:sage [2008/05/25(日) 02:31:03 ] >>94 >(広い意味で)アクション の意味がわかりません。 Maybeも(広い意味で)アクションなのでしょうか?
97 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 03:08:50 ] >>96 そういうつもりで書いた 一般的でない用語法だったらすまん
98 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 03:28:30 ] Just x : なにもしないでxを返すアクション Nothing : 計算を即座に終了させるアクション
99 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 07:33:24 ] f x: xにfを適用するアクション 1 + 2: 1と2を加えるアクション
100 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 09:42:48 ] 理系の方々に伺いたいんですけど、Haskellは数学で蓄積された 知識をダイレクトにコード化が可能だと感じますか? Cなんかだと似ても似つかないものにしないといけませんよね。 数学的なモデルのシュミレーションなんかを記述する際に、 正しく書くのは結構大変じゃないかと思ってしまいます。 そういう点で、Haskellはそのままとは言いませんが書きやすいの かなぁと。だけど、僕の知人で理系の人たちはC言語使う場合が 多いようです。最大の理由はスピードだそうですが、手間を考えると 早い計算機使ってHaskellで書いた方がいい、という考えの人も いるんでしょうか。
101 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 10:41:40 ] ダイレクト云々よりも LINPACKが使えるかどうか それが問題だ
102 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 10:49:58 ] >>99 関数とアクションは同じものなの?
103 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 10:55:25 ] >>102 別のものだよ >>99 はネタ(か、たちの悪い誤解)だから真に受けんな
104 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 11:19:31 ] LINPACKとか言ってるおっさん 氏ねよw
105 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 11:24:30 ] >>100 0か1かみたいな考え方は辞めた方がいいかと。 工学の人は合理的、合目的的に考えるから、適材適所でやります。 速い計算機に、さらに速いソフトウェアがあれば、より計算を回せます。 計算機が速いから、ソフトウェアは遅くていいなんてやり方じゃ、 ライバルに負けてしまいます。遊びならそれでもいいけど。
106 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 11:39:54 ] >>100
107 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 12:36:24 ] 「アクション」ていうのはIOモナドだけじゃねえの? Maybeとかでも「アクション」ていうの?
108 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 12:43:09 ] 少なくともStateとかSTMモナドではアクションって言うよ
109 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 12:43:17 ] 自分もActionというのはIOだけを指しているのだと思ってました。要するに 関数の外の世界に対して、関数の動きが影響を与えたり、逆の現象が発生 するのがActionであり、IO型であると。 IOがモナドなのは、モナド則に当てはまるから、ってだけではないでしょうか?
110 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 13:21:38 ] モナド則に当てはまらないものをモナドと言うわけないでしょ。
111 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 13:24:07 ] >>105 そうそう、その時点その時点でのベストを尽くします。そして、過去の仕事に対するリスペクトも忘れません。
112 名前:デフォルトの名無しさん [2008/05/25(日) 15:24:57 ] 質問です たとえば data Hoge = Hoge { x1 :: Word32, x2 :: Word32, x3 :: Word16, x4 :: Word16} のようなHogeを[Word8]と相互変換する便利な方法ってないでしょうか?
113 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 15:29:12 ] 使ったことないけどSerTHとか?
114 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 15:33:25 ] >>113 へえ・・・ 何となくおもしろそう ドキュメントとか読んでみます
115 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 15:58:20 ] SerTH見てみましたけれど、どうやら私の用向きとは違うようですね。
116 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 16:02:02 ] Template Haskellの方もちょっと見てみます
117 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 00:05:41 ] 計算理論の基礎 計算機プログラムの構造と解釈 ってどっち買ったらいいの? なんか最近数学の基礎たりねー
118 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 00:17:22 ] ちなみに計算理論の基礎が つい先日第2版が出たので聞いてみた 私事だけど金がないので優先度が欲しい
119 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 07:36:44 ] 後者は原著がネット上で無料で読めるから前者
120 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 09:26:17 ] というか全然違う傾向のほんのどっちがいいか聞かれても… しかもHaskellには関係ない 推薦図書スレは別にあるよ
121 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 14:08:03 ] こっちでいいかと science6.2ch.net/test/read.cgi/informatics/1160740645/
122 名前:36 ◆K0BqlCB3.k mailto:sage [2008/05/26(月) 15:31:05 ] 全く調べずに聞くが、concurrent arrowなんてのは無いの? arrow使ってていつも思うんだが、並列処理に向いてなくない? FPGAとかのHDL記述とかに応用したりしてる人いないの?
123 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:01:15 ] >>117 若いうちに読んどいた方がいいのは計算理論の基礎 の方だろ。 計算機プログラムの構造と解釈は仕事で必要になってからで十分。
124 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:17:09 ] >>123 独学でやってしまった奴は 次何すればいいの? とりあえず今自習でλの数学側の 側面勉強してみているが 何の役に立つかわからん
125 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:24:27 ] 絵を描いて学ぶ・プログラマのためのラムダ計算 d.hatena.ne.jp/m-hiyama/20070220/1171956186
126 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:27:23 ] 僕が「ラムダ計算は知っておいたほうがいい」と思う理由は、形式的計算体系としての“純粋ラムダ計算”が理論的に重要だから、というだけではありません。 むしろ、次に述べるようなことがより大きな動機となります。 まず、関数を表現する方法としてのラムダ記法(lambda notation)に慣れて、紙と鉛筆によるインフォーマルなラムダ計算が出来ると、 けっこうそれを使える場面が多いのです。例えば、「JavaScriptによるテンプレート・モナド、すっげー簡単!」の最後で、モナド法則を示すために、 インフォーマルなラムダ計算を使っています。 ある種の計算的実体(例:クロージャ)や計算手法(例:継続ベースの計算)の説明にもラムダ式がよく使われます。 式言語(EL; expression language)に対する処理系(パーザーやエバリュエータ)を作る場合なども、ラムダ計算が良いヒントになるでしょう。 もちろんラムダ計算は、既存の関数型言語を理解する基盤となります。あるいは、新しいプログラミング言語を設計する際にもラムダ計算が規範になるかも知れません。
127 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 22:45:04 ] そもそも計算とはいったいなんなんだ?
128 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 23:36:50 ] 後者関数ってなんだぉ?
129 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 00:14:01 ] やっぱ手書きしねーと理解できねーよw
130 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 07:23:35 ] data type Nat = O | S Nat という定義で自然数(0以上の整数)が表現できる。(ペアノの公理を満たす) このとき S のことを後者関数(successor function)と呼ぶ。
131 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 11:39:43 ] ここで 定義に再帰を使っていいんですか? とか聞くとYコンビネータとか出てきちゃうんだろうか
132 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 16:49:17 ] 質問です yampaっていったい何ですか? ごく簡単に馬鹿でもわかるように概要を説明してください
133 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 19:16:35 ] >>132 d.hatena.ne.jp/propella/20070315/p1 なんかどうよ。
134 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 20:06:04 ] >>132 ll.jus.or.jp/llw2004/program/Reactive.pdf 5ページ目 Haskell による Arrowised Functional Reactive Programming という実装
135 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:54:50 ] Yampaってコンパみたいなもん?
136 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 07:20:03 ] >>127 N.D.Jones, Computability and Complexity その他良本情報はこちら ttp://www.kurims.kyoto-u.ac.jp/~hassei/reading_list.html
137 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 11:55:19 ] 「The Haskell School of Expression」で使われているコードの ファイルってどこかに落ちてませんかね。
138 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 13:59:28 ] >>137 ttp://www.haskell.org/soe/software1.htm
139 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 14:22:28 ] >>138 あ、これってグラフィックライブラリだけじゃなくて、本のコードも 入ってるのか。勘違いしてた。ありがとう。
140 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 20:44:19 ] comb :: Maybe a -> (a -> Maybe b) -> Maybe b このときの Maybe a -> (a -> Maybe b) ここまでが入力だよね? 2項目の引数が関数になっているって解釈でいいんだよね?
141 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 21:04:28 ] うん
142 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 21:41:20 ] 違うだろw 入力 : Maybe a 出力 : (a -> Maybe b) -> Maybe b
143 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 21:51:45 ] ()でくくるとどうなるのw?
144 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 21:52:57 ] >>142 同じことじゃねーか 関数を返す関数と二引数の関数を同一視するのはHaskellでは普通の習慣
145 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 22:22:38 ] >>143 a -> Maybe b っていう関数を引数にとるっていうことだよ
146 名前:初心者修業中 mailto:sage [2008/05/31(土) 22:30:19 ] >>140 Maybe a -> (a -> Maybe b) の2つを入力とする事もできるし、 Maybe a だけを入力とする事もできる。 後者の場合は(a -> Maybe b) -> Maybe bの関数が出力となる。 これを部分適用といい、こういった事ができるのが Haskellの魅力である。 …と認識しています。
147 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 22:31:41 ] >>145 えっとねそれじゃあ Maybe aと関数を引数に取るために (a -> Maybe b)、この2つを与えてますよね? 関数渡すためにこう記述するしか方法がないから そのようになっていると理解したてみたのですが どうやら上の人曰く間違っているようで何が違うのでしょうか Haskellはグラフ簡約によって1度に1つのTermを解釈していくだけ なので、最終的な結果は高々1つになるはずだと思っていたのですが どうやら違うようで混乱してきました。困った、不勉強だ困った
148 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 22:38:00 ] >>143 右結合の二項演算子?である「->」の結合順序をデフォルトから変更している。 A -> B -> C -> D は、「->」が右結合の二項演算子?であるがゆえに、 A -> (B -> (C -> D)) と解釈される。 A -> (B -> C) -> D は、 A -> ((B -> C) -> D) と解釈される。
149 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 22:39:34 ] >>147 >どうやら上の人曰く間違っているようで 間違ってないよ
150 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 22:55:51 ] >>147 > Haskellはグラフ簡約によって1度に1つのTermを解釈していくだけ > なので、最終的な結果は高々1つになるはずだと思っていたのですが > どうやら違うようで混乱してきました。困った、不勉強だ困った 型の問題と適用の問題が、頭のなかでうまく区別が付いていないのでは? 適用される関数はA -> (B -> C) -> D型で変化はないけど、 * A型の「値」に適用すると、(B -> C) -> D型の「値」(関数)が帰ってくる。 * A型の「値」と、 (B -> C)型の「値」(関数)の2引数に適用すると、D型の「値」が帰ってくる。 このように考えてはどうか。 これで納得できなければ、やっぱり単純に、 A -> (B -> C) -> D型は、A型の値をとって、(B -> C) -> D型の値を返す関数の「型」 という出発点に戻るべきかな。
151 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 22:56:33 ] >>142 が突っ込んでるのは > Maybe a -> (a -> Maybe b) ここまでが入力だよね? の部分。 > 2項目の引数が関数になっているって解釈でいいんだよね? こっちは合ってる。
152 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 23:54:09 ] カリー化とは何か?を書いた方がいいんではないでしょうか。 ↓ではお願いします。
153 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 23:58:34 ] この関数適用は出来損ないだ。食べられないよ。
154 名前:初心者修業中 mailto:sage [2008/06/01(日) 01:08:22 ] カリー化とは、 複数の引数を持つ関数を 引数一つの関数の組み合せとする事。 …と認識しています。
155 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:08:36 ] カリー化という言葉を見ると頭の中で 「カリンカカリンカ カリンカマヤ」という歌が繰り返されて止まらなくなる。
156 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:54:38 ] おれもそうりかいしてる。<154 でも、カリー化ときいてターメリックをぶっかけてるイメージしかないw
157 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 09:01:04 ] ガラムマサラとかも入れた方がいいのでは?
158 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 10:27:15 ] エバラ化、桃屋化
159 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 10:28:14 ] 味の素化
160 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 10:59:26 ] >>140 は A -> (B -> C) というふうに切り出してしまったけど、これは本来の A → ((B → C) → D) という結合関係を無視してる(「A -> (B -> C)」という型を扱うみたいに書いている)。 ってのが>>142 でしょ。 カリー化の影響として、「複数の引数をとる」 (A × (B → C)) → D ことと、「関数を返す」ことの、どちらに主眼があるかが不明瞭になるってのがあると思うね。
161 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 11:24:29 ] >>151 >>160 その理屈は分かるんだが、カリー化を理解してるのか怪しい初心者に対して 混乱させるようなことを言うのは不親切だと思う Maybe aと(a -> Maybe b)の二つが引数になっているという理解で正しい、と教えれば十分じゃないか
162 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 11:29:36 ] f(a,b,c) = y f : A×B×C→Y f a b c = ((f a) b) c = y (((f a) b) c) : Y ((f a) b) : C→Y (f a) : B→(C→Y) f : A→(B→(C→Y))
163 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 11:48:09 ] > Maybe a -> (a -> Maybe b) ここまでが入力だよね? 「ここまでが引数リストに対応する部分だよね?」と読むと○ 「ここまでが引数の型だよね?」と読むと× ← ちょっと窮屈な解釈かも、みたいな空気
164 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 15:19:49 ] > Maybe a -> (a -> Maybe b) -> ここまでが入力だよね? と書けばおk
165 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 17:10:16 ] なるほどw
166 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 23:06:52 ] 複数引数の邪悪な関数をこらしめるのがカリー化です。
167 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 23:33:45 ] それだけならタプルで渡せばいいだけじゃそ