今回は和室での開催。入り口からして開発合宿感が漂っていました(合宿ではない)。金沢勤労者プラザというところが会場だったのですがインターネットが無いのだけ除けば満足できる施設でしたよ!
ブログ記事を書いた
前日に参加していたJAWS-UG金沢もくもく会の記事を書きました。とりあえず進捗出せた。
プログラミングElixir 20章
「マクロとコードの評価」というテーマの章でした。
- 関数が使えるなら、マクロは使ってはならない、という教訓
defmacro
quote
unquote
- あるモジュールでマクロを定義して、使う側ではそのモジュールを
requrie
する - マクロに渡されたパラメータは評価されない
quote
に渡されたもの(ブロック)は評価されずに内部表現を返してくれるunquote
したコードはquote
ブロックが実行されてコードが生成されたときに実行されるunquote_splicing
はリストを展開してくれる
Code.eval_quoted(quote do: [1, 2, unquote([3, 4])]) #=> {[1, 2, [3, 4]], []} Code.eval_quoted(quote do: [1, 2, unquote_splicing([3, 4])]) #=> {[1, 2, 3, 4], []}
if をマクロで実装してみようという例でしたが、まだしっくり理解できず。練習問題もやりながら理解していきたいですね。。
- 作者: Dave Thomas,笹田耕一,鳥井雪
- 出版社/メーカー: オーム社
- 発売日: 2016/08/19
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る
懇親会
r.gnavi.co.jp
2件目は安くて程よく雑な雰囲気で穴場開拓した感がありましたね。「本日の男汁」というメニューがあったのが印象的でした。