Description
Pelemay MeetUp#2:「コードブロックの精査方法〜」
マクロとして記述されているdefpelamayの実装を追っていきます. 今回の内容は記事「Elixirでコード変換してみよう」の「Pelemayでのコード変換」に関して詳述するというものになります.
実際には,パイプで繋がった一連の式を関数定義群から抽出しなくてはいけないので,Keyword.take/2でdoブロック内部の式を取ってくるといった処理が必要です.
その後,本記事で紹介したMacro.unpipe/1+@で前処理,Macro.prewalk/3で書き換えています. unpipeした後は必然的にパイプを付け直さないといけないのですが,これはマクロとして定義されているパイプライン構文|>を展開するのと同じ動作で実現できます.(kernel.exから定義を引っ張ってきて少し改良)
なるべくシンプルかつ汎用的に使えるように実装しようとしているのですが,これが中々難しく手詰まっているところです.
開催:2020年1月20日(月) 19:00 ~ 21:00
終了時間は早まる可能性があります.
スケジュール
- 現状のPelemay v0.0.5 の全体像の共有(ElixirConf USで発表したものと同じ)
- メタプログラミング について補足説明
- ライブコーディング方式でPelemay縮小版を作成&説明
- 質疑応答
準備(任意)
Zoomの画面共有を用いて,ライブコーディング式でPelemayの縮小版を作ります.
マシンにElixirを準備していただければ,同時並行で進められるかと思います.
Pelemay関連リンク
GitHubのリポジトリ:Pelemay
Slackワークスペース:Elixir.jpのpelemayチャンネル