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