- 682 名前:名前は開発中のものです。 mailto:sage [2010/09/08(水) 00:52:40 ID:tH+bUdjg]
- >>678
基本的にXluaはfunction型の扱いを前提とはしてないみたいだけれども、 RunStringなんかを使えば扱えます。詳しくは604のMMFイベントを見てください。 RunStringに渡すLuaコードにはMMFの標準機能を使えるので、 オブジェクトの変数 + = "get_closure()" みたいに、かなり柔軟に挙動(関数)を状態保持つきで扱えます。これが美味しいです。 MMFでまかなえる部分をわざわざLuaで書く必要はないと思いますが、 こうやって大量の条件式を1行にまとめられるのは、折角Luaを使っているのなら使わない理由はないかと。 クロージャの概念そのものは、JavaScriptなんかを当たった方が多分資料多いです。 604の「関数を呼び出すごとに次の行を返す」というイテレータと呼ばれる機能は、 ジェネリック型のfor文(for ... in ...)でも利用されているので、比較的理解しやすいんじゃないかと。 あの程度ならグローバル変数をひとつ用意すれば事足りましたけどね。前述の通り拡張予定だったんで。 Luaについてなら概念的なことも含めて結構情報提供できると思うんで、 思考がKnPで止まってるロートル向けに、MMF側の便利な使い方を教えてくださると嬉しいす。 もし時間が大幅に空いたら、MMF向けのLua講座として記事まとめるかもしれません。 まともにやればかなりの分量になりそうだけど、Wikiの中に直接組み込んじゃって平気かな?
|

|