読者です 読者をやめる 読者になる 読者になる

c4se記:さっちゃんですよ☆

.。oO(さっちゃんですよヾ(〃l _ l)ノ゙☆)

.。oO(此のblogは、主に音樂考察Programmingに分類されますよ。ヾ(〃l _ l)ノ゙♬♪♡

音樂はSoundCloud等バラバラの場所に公開中です。申し訳ないがlinkをたどるなどして探してください。

考察は現在は主に此のblogで公表中です。

programmingは、ひろくみせるものはGitHubで、個人的なものはBitBucketで開発中です。

c4se

Dartの並列処理 (Isolate) を使ってFizzBuzz

もうちょっとGoogle Dartを続けてみる。
DartのIsolateを意味もなく使ってFizzBuzzをする。browser applicationではなく、console applicationとして作る。読んで迷わないであろうところでは、型annotationを省略した。

#import('dart:isolate');

void main() {
  SendPort sendPort = spawnFunction(fizzbuzz);
  Future<String> fbStr = sendPort.call(100);
  fbStr.then((value) => print(value));
}

void fizzbuzz() {
  port.receive((int n, SendPort sendPort) {
    List<String> fbResult = [];
    for (int i = 1; i <= n; ++i) {
      if (i % 15 == 0) fbResult.add('FizzBuzz');
      else if (i % 3 == 0) fbResult.add('Fizz');
      else if (i % 5 == 0) fbResult.add('Buzz');
      else fbResult.add('$i');
    }
    String fbStr = '';
    fbResult.forEach((elm) => fbStr = fbStr.concat('$elm '));
    sendPort.send(fbStr);
  });
}

どうもentry pointとして呼ばれるvoid main()自体が、main isolateとして呼ばれているらしい。IsolateとFutureの非同期messagingが基礎的な実行model、きっと。