2013年11月29日金曜日

開発環境

初めてのコンピュータサイエンス(Jennifer CampbellPaul GriesJason MontojoGreg Wilson(著)長尾 高弘(翻訳))の9章(集合と辞書)、9.5(練習問題)、12をDartで解いてみる。

その他参考書籍

9.5(練習問題)、12.

コード

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){
    String result = '${window.navigator.userAgent}\n';
    [scientists1, scientists2].forEach((Map<String, Map> m){
      result += 'database: $m\n';;
      result += 'database consistent: ${dbConsistent(m)}\n';
    });
    pre.text = result;
  });
  clear.onClick.listen((MouseEvent event) => pre.text = '');
}

bool dbConsistent(Map<String, Map> m){
  List ms = m.values.toList();
  Set heading = new Set.from(ms.first.keys);
  for (var n in ms.sublist(1)){
    if (!heading.difference(new Set.from(n.keys)).isEmpty){
      return false;
    }
  }
  return true;
}
Map<String, Map> scientists1 = {'Jグドール': { '姓': 'ゴドール', '名': 'ジェーン',
  '生年': 1934, '没年': null, '注目': '霊長類研究者',
  '著作': ['In the Shadow of Man', 'The Chimpanzees of Gombe']},
  'Rフランクリン': {'姓': 'フランクリン', '名': 'ロザリンド', '生年': 1920, '没年': 1957,
  '注目': 'DNAの発見に貢献'},
  'Rカーソン': {'姓': 'カーソン', '名': 'レイチェル','生年': 1907, '没年': 1964,
    '注目': 'DDTの毒外に注意を喚起', '著作': ['沈黙の春']}};

Map<String, Map> scientists2 = {'Jグドール': { '姓': 'ゴドール', '名': 'ジェーン',
  '生年': 1934, '没年': null, '注目': '霊長類研究者',
  '著作': ['In the Shadow of Man', 'The Chimpanzees of Gombe']},
  'Rカーソン': {'姓': 'カーソン', '名': 'レイチェル','生年': 1907, '没年': 1964,
    '注目': 'DDTの毒外に注意を喚起', '著作': ['沈黙の春']}};














						

0 コメント:

コメントを投稿