2013年12月18日水曜日

開発環境

C実践プログラミング 第3版 (Steve Oualline (著)、 望月 康司 (監訳) (翻訳)、谷口 功 (翻訳)、オライリー・ジャパン)のⅢ部(高度なプログラミング概念)の17章(高度なポインタ)、17-12(プログラミング実習)、実習17-2.をDartで解いてみる。

その他参考書籍

17-12(プログラミング実習)、実習17-2.

コード

sample.dart

import 'dart:html';

void main(){
  String s = 'kamimura';
  InputElement input = querySelector('#f0');
  InputElement run = querySelector('#run_dart');
  InputElement clear = querySelector('#clear');
  Element pre = querySelector('#pre0');
  run.onClick.listen((MouseEvent event){
    pre.text = window.navigator.userAgent + '\n';
    var l = new LinkedList();
    for(var lang in langs){
      l.add(lang);
    }
    pre.text += '$l\n';
    l.remove('c');
    pre.text += '$l\n';
    l.remove('python');
    pre.text += '$l\n';
    l.remove('dart');
    pre.text += '$l\n';
    l.remove('scheme');
    l.remove('haskell');
    pre.text += '$l\n';
  });
  clear.onClick.listen((MouseEvent event) => pre.text = '');
}

class LinkedList{
  var a;
  LinkedList next;
  LinkedList(){
    a = null;
    next = null;
  }
  void add(var x){
    if(a == null){
      a = x;
      next = new LinkedList();
    } else {
      next.add(x);
    }
  }
  void remove(var x){
    if(a == x){
      if(next != null){
        a = next.a;
        next.remove(a);
      } else {
        a = null;
      }
    } else {
      next.remove(x);
    }
  }
  String toString() => a == null ? '(null)' : '(LinkedList $a ${next})';
}

List<String> langs = ["python", "c", "scheme", "haskell", "dart"];













						

0 コメント:

コメントを投稿