C++ ブースト バインド ライブラリと clojure の部分関数は非常に似ています。例えば:
int x = 8;
bind(std::less<int>(), _1, 9)(x); // x < 9
これは、clojure の部分関数に似ています。
((partial > 9) 8)
違いはpartial、最初の n 個のパラメーターのみをバインドできるのに対し、バインドされboost::bindているパラメーターとバインドされていないパラメーターを示すプレースホルダーを許可することです。したがってboost::bind、実際にははるかに一般的で便利です。
bind(f, _2, _1)(x, y); // f(y, x)
bind(g, _1, 9, _1)(x); // g(x, 9, x)
boost::bindclojure(またはclojure-contrib)に似たものがあるかどうか疑問に思っていますか?そして、なぜパーシャルはより一般的 (かつ有用) に書かれていなかったのboost::bindでしょうか?