2013年12月15日日曜日

開発環境

初めてのコンピュータサイエンス(Jennifer CampbellPaul GriesJason MontojoGreg Wilson(著)長尾 高弘(翻訳))の12章(各種ツール)、12.7(練習問題)、12-11.をDartで解いてみる。

その他参考書籍

12.7(練習問題)、12-11.

コード

sample.dart

import 'dart:html';

void main() {
  InputElement run = querySelector('#run_dart');
  InputElement clear = querySelector('#clear');
  Element pre = querySelector('#pre0');
  run.onClick.listen((MouseEvent event){
    pre.text = '${window.navigator.userAgent}\n';
    [testRemoveFromEmpty, testRemoveFromOnItemList, testRemoveSomethingElse,
     testRemoveMultiple].forEach(
         (var f) => pre.text += '${f() ? 'OK' : 'FAILED'}: $f\n');
  });
  clear.onClick.listen((MouseEvent event) => pre.text = '');
}

void removeAll(List sequence, var a){
  sequence.removeWhere((var elem) => elem == a);
}

List empty_list = [];
List one_item_list = ['He'];
List multi_item_list = ['Ne', 'Ar', 'He', 'He'];

bool testRemoveFromEmpty(){
  List temp = empty_list.toList();
  removeAll(temp, 'He');
  return temp.length == 0;
}

bool testRemoveFromOnItemList(){
  List temp = one_item_list.toList();
  removeAll(temp, 'He');
  return temp.length == 0;
}

bool testRemoveSomethingElse(){
  List temp = one_item_list.toList();
  removeAll(temp, 'Pb');
  return temp.length == 1;
}

bool testRemoveMultiple(){
  List temp = multi_item_list.toList();
  removeAll(temp, 'He');
  return temp.length == 2;
}


Dartと関数名も表示されるのが、dart2jsによるJavaScriptだとClosureとしか出力されないみたい。

0 コメント:

コメントを投稿