開発環境
- OS X Mavericks - Apple (OS)
- Dart Editor (開発環境)
- Dartium | Dart/ Structured web apps (ブラウザ, Dart VM 用 (Chromium with the Dart VM))
- Safari (ブラウザ, JavaScript 用)
- Dart (プログラミング言語)
初めてのコンピュータサイエンス(Jennifer Campbell、Paul Gries、Jason Montojo、Greg Wilson(著)長尾 高弘(翻訳))の12章(各種ツール)、12.7(練習問題)、12-10.をDartで解いてみる。
その他参考書籍
- What is Dart? [Kindle版] (O'Reilly Media) Kathy Walrath Seth Ladd (著) このブログでの感想
12.7(練習問題)、12-10.
コード
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';
testLists.forEach((List s){
try{
if(isSorted(s[1]) == s[2]){
pre.text += 'OK\n';
} else {
pre.text += '${s[0]}\n';
}
} catch (e){
if(e.runtimeType == TypeError){
pre.text = 'OK\n';
} else {
pre.text += '${s[0]}: ${e.runtimeType}\n';
}
}
});
});
clear.onClick.listen((MouseEvent event) => pre.text = '');
}
bool isSorted(List<num> nums){
var temp = nums.toList();
temp.sort((num a, num b) => a - b);
for(int i = 0; i < temp.length; i += 1){
if(temp[i] != nums[i]){
return false;
}
}
return true;
}
List testLists = [['リストではない', 'dart', TypeError],
['全て整数ではないリスト', [1, 'a'], TypeError],
['空のリスト', [], true],
['要素が1つのリスト', [10], true],
['要素が2つのソート済リスト', [1, 2], true],
['要素が2つの逆順リスト', [2, 1], false],
['全て等しい要素のリスト', [10, 10], true],
['先頭がソートされていないリスト', [10, 1, 2, 3, 4], false],
['真ん中がソートされていないリスト', [1, 2, 5, 3, 4], false],
['末尾がソートされていないリスト', [1, 2, 3, 4, 0], false]];
最初の2つがDartとdart2jsによるJavaScriptで出力結果が違った。
0 コメント:
コメントを投稿