Proc Luaを勉強してみての感想とProc Luaをオブジェクト指向プログラミグの試み

内容のポイント

  • Proc Luaのいいところ.
  • luaのオブジェクト指向プログラミングをproc Luaで試してみた.
  • 今回の参考のリンク先

天気も良くないせいか,頭も心もモヤモヤなので,仕事の息抜きついでにLuaの勉強をしております(笑).

SASYAMAさんのブログでは”Proc lua”についてかなり参考になりますね.私が書くまでもないぐらい.なのでちょっと視点を変えてちょっとした試みをしたいと思います.


Proc Luaを勉強してみての感想

まずは,Proc luaを勉強してみて感じた部分は2つです.

  1. call executeを使わなくても綺麗にメタプログラミングができそう.
  2. マクロ変数のスコープの問題で悩まされなくてよさそう.

1つ目は柔軟に汎用性の高いプログラムを作る時はcall executeを使ってメタプログラミングすることが多いです.ただ,文字列の中にマクロ変数を入れて実行するときにシングルコーテーション「’」とダブルコーテション「”」の使いわけで多少行き詰まったりすることがあったりします

proc luaのsas.submitを使うことでシンプルに記述できるので書きやすいし,可読性も高い.

2つ目は小さいSASマクロを組み合わせてプログラムを作る際に問題となるのがスコープの問題…結構気にしながら作らないとグローバルマクロ変数で上書きされて変な動作をしてしまうなどの問題が何度かありました.

luaではクロージャなどが作れるので,ある程度のスコープが設定できそうなので小さい処理のプログラムを作ってライブラリ化するとかなり便利だと思います.


オブジェクト指向プログラミング

次にオブジェクト指向プログラミングを行ってみました(できがイマイチですが・・・).

実行結果は以下のリンク先に保存してます.

luaでオブジェクト指向プログラミングをする際は”setmetable”を使うのがミソらしいです.

今回はメタプログラミングをするときにデータセットのレコードの数,変数の数や変数名などのメタ情報を出力できるようにするクラスを作りました.これをもう少しブラッシュアップして実用的に使えるように検討したいと思います.


参考リンク

9月からちょっとバタバタしそうなので更新頻度が減るかもしれませんが,今後もお付き合いいただければと思います.