Scala ってかわいいですね!

最近は Scala ってゆう言語が流行っているみたいで、私もすこしやってみています>< インストールがけっこう大変だったり、起動がゆっくりしていて動いているのかときどき不安になったりするけど、たのしいです!

Scala は型が強い関数型の側面と、手続型の側面のりょうほうもっていて、そのうえで Java の歴史ある(笑)たくさんの資産が動くので、とてもおもしろいです。actor モデルとかも採用してるみたいだし、まだやってないけど、そのうちやってみようとおもいます!

ところでところで、Scalajava.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

PHP

あれからもうすこし調べてみたですけど、PHP はテンプレート言語なんですよね???? PHP を Template::Toolkit におきかえて読んでみると ???? なところがたくさんあります。。。。ちゃんとしたプログラマが「勉強して」つかう言語ではなく、Template::Toolkit のように、ドメインを限定して、そのときそのとき使うようなものではないでしょうか・・・余計な機能がありすぎなんだとおもいます・・・

それと PHPer とよばれるひとたちはわるくないと思います。

はてなハイク!

寝るまえに久しぶりに日記を書きます! もう今年もあとすこしですねぇ〜 なんだかちょっと寂しいです。

わたしは最近はてなハイクでお絵描きしたりしてすごしています (・-・*) 実はもうとっくに冬休みなんだけど、あんまりプログラム書いてなかったり (^_^;) 休みに入って気が抜けちゃったかなぁ〜

それはそうと! そうと! id:hkn さんがわたしの似顔絵を書いてくれたんです >_<

id:hkn さんとは直接会ったことないけど、ちゃんとめがねも書いてくれて本当にうれしいです>_< (CodeRepos のコミッタページには書いたんですけど、実わたしあんまり目が良くなくてめがねをかけています)

↓わたしのハイク

もっとがんばらなきゃ >_<

ブラウザで S 式をつかいたい><

JS オレオレ言語ブーム - IT戦記OreScript時代の幕開け - yukobaのブログ を知ったので、Scheme みたいなのをつくってみました>< でもぜんぜんできてないです(笑)

naoscheme/index.html

<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 を参考にしました! ありがとうございます。

うーんうーん

HaskellSchemePHP を比べたら、いちばん文法が簡単なのは Scheme だよね( ̄〜 ̄;)?? なんで PHP がにんきなのかなぁ??

Gauche ははやいし、FastCGI もあるみたいだし、ふしぎだあ (>_<)°°°