開発環境
- 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 コメント:
コメントを投稿