2014年1月26日日曜日

開発環境

Real World Haskell―実戦で学ぶ関数型言語プログラミング(Bryan O'Sullivan (著)、 John Goerzen (著)、 Don Stewart (著)、山下 伸夫 (翻訳)、伊東 勝利 (翻訳)、株式会社タイムインターメディア (翻訳)、オライリージャパン)の4章(関数プログラミング)、4.5(リストを使う)、練習問題 3.をDartで考えてみる。

その他参考書籍

練習問題 3.

コード

sample.dart

import 'dart:html';

void main(){
  var textarea = new TextAreaElement();
  FileReader reader = new FileReader();
  run.onClick.listen((MouseEvent event){
    try{
      File file = input.files.first;
      reader.readAsText(file);
      reader.onLoadEnd.listen((var event){
        String temp = reader.result;
        List<String> lines = temp.split('\n');
        var pattern = new RegExp(r'\s+');
        var result = '';
        var rows = 0;
        for(var line in lines){
          line = line.trim();
          var temp = line.split(pattern);
          result += temp.isNotEmpty ? temp.first : '';
          result += '\n';
          rows += 1;
        }
        textarea.rows = rows;
        textarea.style.width = '650px';
        textarea.text = result;
        div.innerHtml = '';
        div.append(textarea);
      });
    } catch (e){
      div.text += '$e\n';
    }
  });
  textarea.onClick.listen((MouseEvent event) => textarea.select());
}

InputElement input = querySelector('#f0');
ButtonElement run = querySelector('#run_dart');
DivElement div = querySelector('#d0');

0 コメント:

コメントを投稿