クロージャのあるDartではC++ likeなbind()は不要

DartでBindとジョブキューみたいなの作ってみた - とりあえず適当な名前にした
C++ (C++11以前) でよく使われる関数オブジェクトは無名関数やクロージャがない言語での苦肉の策なので、クロージャのあるDartではあまり使う必要はないと思います。このあたりがまさにbetter JavaScriptたるDartの強いところだと思いますね。

#!/usr/bin/env dart
// ある関数があったとして
num add(num a, num b) => a + b;

typedef num UnaryFunc(num);

void main() {
    var x = 42; // bindされる変数

    { // 型付きの変数にクロージャを代入
        final UnaryFunc addx = (num a) => add(a, x);
        print( addx(10) ); // -> 52
    }

    { // 型なしの変数にクロージャを代入
        final addx = (num a) => add(a, x);
        print( addx(11) ); // -> 53
    }

    { // lexical scopeでクロージャを定義
        int addx(num a) => add(a, x);
        print( addx(12) ); // -> 54
    }
}