開発環境
- OS X Mavericks - Apple (OS)
- Dart Editor (開発環境)
- Dartium | Dart/ Structured web apps (ブラウザ, Dart VM 用 (Chromium with the Dart VM))
- Safari (ブラウザ, JavaScript 用)
- Dart (プログラミング言語)
Real World Haskell―実戦で学ぶ関数型言語プログラミング(Bryan O'Sullivan (著)、 John Goerzen (著)、 Don Stewart (著)、山下 伸夫 (翻訳)、伊東 勝利 (翻訳)、株式会社タイムインターメディア (翻訳)、オライリージャパン)の3章(型を定義し、関数を単純化する)、3.13(ガードの条件節の評価)、練習問題 9, 10.をDartで解いてみる。
その他参考書籍
- What is Dart? [Kindle版] (O'Reilly Media) Kathy Walrath Seth Ladd (著) このブログでの感想
練習問題9, 10.
コード
sample.dart
import 'dart:html';
void main(){
for(InputElement input in [p1x, p1y, p2x, p2y, p3x, p3y]){
input.onKeyUp.listen((KeyboardEvent event){
pre.text = window.navigator.userAgent + '\n';
try{
var ax = double.parse(p1x.value);
var ay = double.parse(p1y.value);
var bx = double.parse(p2x.value);
var by = double.parse(p2y.value);
var cx = double.parse(p3x.value);
var cy = double.parse(p3y.value);
var a = new Point(ax, ay);
var b = new Point(bx, by);
var c = new Point(cx, cy);
var d = new Direction(a, b, c);
pre.text += '$d\n';
} catch (e){
pre.text += '$e\n';
}
});
}
}
InputElement p1x = querySelector('#p1x');
InputElement p1y = querySelector('#p1y');
InputElement p2x = querySelector('#p2x');
InputElement p2y = querySelector('#p2y');
InputElement p3x = querySelector('#p3x');
InputElement p3y = querySelector('#p3y');
PreElement pre = querySelector('#pre0');
class Point{
num x;
num y;
Point(this.x, this.y);
}
class Direction{
var direction;
Direction(Point a, Point b, Point c){
var cow = (b.x - a.x) * (c.y - a.y) - (b.y - a.y) * (c.x - a.x);
direction = cow < 0 ?
'Clockwise' : cow > 0 ?
'Counterclockwise' : 'Collinear';
}
String toString(){
return direction;
}
}
,
,
0 コメント:
コメントを投稿