ScalaでBrainf*ckのインタプリタを書いてみたよ http://d.hatena.ne.jp/daisuke-m/20110225/1298639404
2011-02-25 22:10:03昔書いたscala版brainfuck……の派生言語ジェネレータwith parser combinator. http://bit.ly/dO0uG5
2011-02-25 22:30:50求めてるのはこんなんじゃないよっ>< もっと初心者向けのやつたのむww RT @yuroyoro: 昔書いたscala版brainfuck……の派生言語ジェネレータwith parser combinator. http://bit.ly/dO0uG5
2011-02-25 22:40:51@daisuke_m じゃ近いうちにちょいと書き直してみるです。電卓とか構文木とかは、構成要素をsealedなcase classにしてみるのがお約束なんで、その辺から。次に構文木作ってみる。
2011-02-25 23:31:12@daisuke_m うぃ。簡単に言うと、派生先のcase classに対するパターンマッチの網羅性をコンパイラにチェックさせる仕組み。
2011-02-25 23:38:05@yuroyoro ほーーー。 …なんかbrainf*ckっていうテーマがある意味専門的すぎて、一般的なScala学習から方向性ズレてたりしない…? 大丈夫?ww
2011-02-25 23:41:02メリットがあるのなら、地豆のEclipse Plugin部分をScalaで書いちゃってもいいと思っている。メリットはまだはかれないけど。 コアはJavaからすんなり使えるのが大事だと思うのでJavaで維持する。 #jiemamy
2011-02-25 23:43:58@daisuke_m とりあえずforkして、ちょっと直してみた。Scalaでは、Javaの常識である1クラス1ファイルというのは捨てていい。意味のある小さいクラスは積極的に1ファイルにまとめるべき。 http://bit.ly/iaX7h4
2011-02-26 00:23:45@yuroyoro その辺は、脳内でASTが組み立てられないからまだ読みづらい部分がある。def aaa = bbb <= ccc って、なんか「ん?」ってなるw
2011-02-26 00:32:29@daisuke_m 俺も最初そうだったなぁ。慣れかな? コツは、最初の"="or"=>" とそれ以降で分割して認識すればいいのでわりとすぐ慣れると思う
2011-02-26 00:34:28@yuroyoro うん、そこはひとまず「そういうもの」で処理する。けど、なんかいずれは無意味に「一部分だけ評価した時」の、その結果の「型」が知りたくなると思う。
2011-02-26 00:38:21某ソースを読んでいてふと気になったのだけど、Scalaで1ソース上にcase classをたくさん定義した場合、それはバイトコード上では、Javaでいうstatic classの表現になっていると想定していい?
2011-02-26 00:39:27@t_yano いえ。そもそもコンパイル単位=1ClassファイルというのはScalaでは成立しませんです。実際に、1ファイル内のcase class はそれぞれトップレベルのpublic classとしてクラスファイルができます
2011-02-26 00:41:40この「Java脳(ニワカScala脳)で書いたScala」と「Scala脳で書いたScala」のbefore/afterは貴重な教材だとおもう。
2011-02-26 00:42:32