開発環境
- 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(著)長尾 高弘(翻訳))の9章(集合と辞書)、9.5(練習問題)、14-a, bをDartで解いてみる。
その他参考書籍
- What is Dart? [Kindle版] (O'Reilly Media) Kathy Walrath Seth Ladd (著) このブログでの感想
9.5(練習問題)、14-a, b.
コード
sample.dart
import 'dart:html'; import 'dart:math' as math; void main() { InputElement run = querySelector('#run_dart'); InputElement clear = querySelector('#clear'); Element pre = querySelector('#pre0'); run.onClick.listen((MouseEvent event){ String result = '${window.navigator.userAgent}\n'; new List(10).forEach((var elem){ Map m1 = mkMap(); Map m2 = mkMap(); result += 'm1 = $m1\nm2 = $m2\n'; result += 'sparseAdd: ${sparseAdd(m1, m2)}\n'; result += 'sparseDot: ${sparseDot(m1, m2)}\n'; }); pre.text = result; }); clear.onClick.listen((MouseEvent event) => pre.text = ''); } Map sparseAdd(Map m1, Map m2){ Map result = new Map.from(m1); m2.forEach((var k, var v){ if (m1.containsKey(k)){ result[k] += v; } else { result[k] = v; } }); return result; } num sparseDot(Map m1, Map m2){ num result = 0; for (var k in m1.keys){ if (m2.containsKey(k)){ result = m1[k] * m2[k]; } } return result; } math.Random random = new math.Random(); Map<num, num> mkMap(){ Map<num, num> result = {}; for(int n in new List(random.nextInt(5) + 1)){ result[random.nextInt(10)] = random.nextInt(10) + 1; } return result; }
0 コメント:
コメントを投稿