Scala ってかわいいですね!
最近は Scala ってゆう言語が流行っているみたいで、私もすこしやってみています>< インストールがけっこう大変だったり、起動がゆっくりしていて動いているのかときどき不安になったりするけど、たのしいです!
Scala は型が強い関数型の側面と、手続型の側面のりょうほうもっていて、そのうえで Java の歴史ある(笑)たくさんの資産が動くので、とてもおもしろいです。actor モデルとかも採用してるみたいだし、まだやってないけど、そのうちやってみようとおもいます!
ところでところで、Scala で java.util.List なオブジェクトを Scala での Collection っぽく扱えるようにする方法が解らなくて大変でした。。。でも scala.collection.jcl.Buffer.apply を使えばいいことがわかりました。
Buffer.apply(numbers).map( _.asInstanceOf[Int] )
java.util.list で java.lang.Integer な numbers を Int の Collection にしたいときはうえみたいにしたらできました。 asInstanceOf はキャストです。_ は Perl の $_ みたいなやつのらしいです。_ をつかったときは、=> をつかった関数定義にしなくてよくて楽です。
でも、毎回 Buffer.apply を書きのはめんどうなので
implicit def juL2sC[T](list: java.util.List[T]):BufferWrapper[T] = Buffer.apply[T](list)
numbers.map( _.asInstanceOf[Int] )
みたいにすることにしました。implicit def が宣言されているスコープでは、この宣言で変換できるオブジェクトは変換されます。オープンクラスをフレキシブルに実装している感じですてきです! スコープ内でしか効かないのでオープンクラスほど危険ではない感じです。implicit def はメソッド名はあんまり重要じゃなくて、周りについている型がとても重要みたいです。
はてなハイクでも書いてるのでよろしくお願いします>< http://h.hatena.ne.jp/keyword/Scala
>_<
なかなか書けそうなことがないんです>< でも私は元気です!
はてなハイク!
寝るまえに久しぶりに日記を書きます! もう今年もあとすこしですねぇ〜 なんだかちょっと寂しいです。
わたしは最近はてなハイクでお絵描きしたりしてすごしています (・-・*) 実はもうとっくに冬休みなんだけど、あんまりプログラム書いてなかったり (^_^;) 休みに入って気が抜けちゃったかなぁ〜
それはそうと! そうと! id:hkn さんがわたしの似顔絵を書いてくれたんです >_<
id:hkn さんとは直接会ったことないけど、ちゃんとめがねも書いてくれて本当にうれしいです>_< (CodeRepos のコミッタページには書いたんですけど、実わたしあんまり目が良くなくてめがねをかけています)
↓わたしのハイク
もっとがんばらなきゃ >_<
ハイク
気付いたときにはもう3次まで締め切られてました>< かなしい!
ブラウザで S 式をつかいたい><
JS オレオレ言語ブーム - IT戦記 で OreScript時代の幕開け - yukobaのブログ を知ったので、Scheme みたいなのをつくってみました>< でもぜんぜんできてないです(笑)
<script type="application/x-naoscheme"> (define myalert (msg) (alert msg)) (set! test "*_*") ((lambda (foo) (myalert foo)) test) </script> <script type="application/x-naoscheme"> (add-event-listener window "load" (lambda (e) (alert e) (call document.body "appendChild" (call document "createTextNode" "こんにちは!")) ) false) </script> <script src="naoscheme.js" type="text/javascript"></script>
こんな感じになります! たのしいです (^-^)
再帰ばっかりなのでながいコードだとスタックがあふれると思います。・°°・(>_<)・°°・。
それとパーサ部分では パーサの作成 - HaskellでLispを書く日記 - haskell を参考にしました! ありがとうございます。