stdex.bind - dmd 2.015
これまでに何度もstd.bindを復活させようとしてきてその度に失敗してきた.
けど,ようやく簡単な関数ならbindできるようになったよ.
フルスクラッチ!
import std.stdio; import stdex.bind; T[] removeIf(alias cond, T)(T[] arr) { T[] ret; foreach (v; arr) if (!cond(v)) ret ~= v; return ret; } void main() { int[] arr = [1,2,3,4,5,6,7,8,9]; auto less = (int i, int j){return i<j;}; auto lessThan6 = bindAlias!(less)(_0, 6); auto greaterThan5 = bindAlias!(less)(5, _0); writefln(removeIf!(lessThan6)(arr)); writefln(removeIf!(greaterThan5)(arr)); static int sub(int a, int b){return a-b;}; //auto a = bindAlias!(sub)(_0, _1); //auto b = bindAlias!(sub)(_1, _0); auto c = bindAlias!(sub)(_0, 5); auto d = bindAlias!(sub)(10, _0); auto e = bindAlias!(sub)(10, 5); //writefln(a(10,5)); //writefln(b(10,5)); writefln(c(10)); writefln(d(5)); writefln(e()); } /* [6 7 8 9] [1 2 3 4 5] 5 5 5 */
コメントアウトしてる部分はまだできない><;