2008-08-01から1ヶ月間の記事一覧

なぜSchemeなのか?

本当はSchemeじゃなくて、強い型付けと型推論を持った言語がよかったんです、OCamlとかSMLとか。 でも、OCamlとかだとパーサ部分が相当大変な気がしたので、とりあえず構文解析が楽そうなLisp系にしました。個人的にはCommonLispのほうが好きなんだけど、最…

Swfへ埋め込みに成功したよ!!

とうとうSwfに埋め込むことに成功したよ!やった!! (define-class Hello flash.display.Sprite ((init) (let [(t (new flash.text.TextField))] (invoke t appendText "Happy-abc") (invoke this addChild t)))) 埋め込みにswfmill+シェルスクリプトを利用し…

クラスをサポートしよう(2) -名前空間のサポート-

親クラスに名前空間が使えるようになった。 (define-class Foo flash.text.Sprite ((init) "hello")) R5RSでは名前空間は言及されていないから、悩み所。 CommonLispはパッケージを持っているものの、階層的なパッケージについては言及してない。 とりあえず…

クラスをサポートしよう(3) -newのサポート-

Add: "new" special form to create instance from class. · mzp/scheme-abc@dcd17b6 · GitHub クラスからインスタンスを作るためのnewを追加しました。 (define-class Foo Object ((init) (print "hello"))) (new Foo)CLOS的にはmake-fooみたいな関数を作る…

クラスをサポートしよう(1) -クラスの定義-

swfを生成するためにはクラスが必要不可欠なので、クラスをサポートできるようにがんばってる。 ただ、CLOSは荷が重すぎるので、独自のクラスシステムになっている。 (define-class Foo Object ((init) "hello")) をコンパイルすると class Foo extends Obje…

実装しない機能

こんな機能は実装しないよ。 作業量が多い、もしくはABC的に不可能な機能。 CLOSやMOPなどActionScriptの範囲を越えるオブジェクトシステム Flash8以前のサポート 継続、スレッドサポート ポリシーとして実装しないやつ。 単純なset!による破壊的代入。もっ…