というかbind1stはcurryingそのものだと思うんだけど、bindって名前がついてる以上bindなんだよな、じゃあ両者の境界は?
2011-09-04 21:23:07f = a -> b -> c と f = (a, b) -> c を厳密に区別しないと困る場面ってどんなんだろう、区別したがる人が居るからにはそういう場面があるはずなんだけど実際の問題を見たことが無い .
2011-09-04 21:26:12結局「curryingとbindの区別がつかない」人が居るってのは、区別する必要がある場面に出くわしたことないからじゃないのかなあ、とか。(数学理論とかじゃなくて実際のプログラミングの問題で)curryingじゃないと解決できない問題があるんならソレ見せれば一発で分かるようになる
2011-09-04 21:31:51もしもcurryingじゃないと解決できない問題が存在しないなら、(プログラミングの場面においては)curryingをpartial apply (bind)のサブセットとみなしても問題なかろう
2011-09-04 21:34:00@kikairoya f=a->b->cのときに引数にb->cを取る関数にf(a)を食わせるとか、関数型の言語だと普通にしません?
2011-09-04 21:52:46@kfujieda んーということは、C++のstd::bindはその名前とは裏腹にcurryingであって、partial applyではないという認識でいいんですかね
2011-09-04 21:58:49http://t.co/2pcLWq0 んー、いや。カリー化!=部分適用、ってのはまず事実としてあるのに、用語の誤用を広めといて、それでいいじゃん、という事に私は賛同しないです。
2011-09-04 22:06:37もちろん、部分適用に相当する用語が無かったなら話はわかりますが、そういう用語はあるのだから、それ使えばいいじゃんと思うわけです。この手の話はカリー化に限らず繰り返されてきましたが、カリー化に関しては非常にまぎらわしいので、止めて欲しいなー、というのが本音です。
2011-09-04 22:08:09んーこのままだとf = (a, b) -> c に対する1段階(こういう言い方するのかな?しない気がする)のcurryingとaの部分適用は同じだ、という認識になってしまうんだけれど
2011-09-04 22:11:18用語の誤用に関しては色々スタンスはあると思うのですが、この件では、カリー化=部分適用、という誤解が広まることによって、カリー化という用語の意味が上書きされてしまって、カリー化という用語を(本来の意味で)実質的に使えなくなる事を私は危惧しています。
2011-09-04 22:12:43…とここまで喚き散らしたところで、 http://t.co/8eLdMJC を読んでどこに誤解があったのかわかった
2011-09-04 22:14:08