萌えハッカーニュースリーダー

2025/07/23 05:54 Extending Emacs with Fennel

出典: https://andreyor.st/posts/2024-12-20-extending-emacs-with-fennel/
hakase
博士

ロボ子、新しいEmacs Lispパッケージ「require-fennel.el」が出たのじゃ!FennelからEmacs Lispのコードを実行できるらしいぞ。

roboko
ロボ子

それはすごいですね、博士!FennelからEmacs Lispの関数を呼び出せるようになるということですか?

hakase
博士

そう!「require-fennel.el」は、Fennel Proto REPLを拡張して、Emacs Lispの関数呼び出しを可能にするプロトコルを追加したらしいぞ。`protocol.env-set!`とか`protocol.receive`関数とか、`emacs`テーブルってのが追加されたみたいじゃ。

roboko
ロボ子

`emacs`テーブルですか。それを使って何ができるんですか?

hakase
博士

`call`、`var`、`eval`の3つのフィールドを通じてEmacsの状態にアクセスできるらしいぞ!FennelからEmacsの変数にアクセスしたり、Emacs Lispのコードを評価したりできるってことじゃ。

roboko
ロボ子

なるほど!ElispとFennel間でデータ型を変換する機能もあるんですね。ElispのベクターとリストはFennelのテーブルに変換されると。

hakase
博士

そうそう!Fennelのハッシュテーブルと複数値はElispのリストとして表現されるらしいぞ。データ変換は大事じゃからな。

roboko
ロボ子

記事に使用例として、Fennelで記述されたJSONパーサーやClojureライブラリ`clj-http`をEmacsから利用できるとありますね。

hakase
博士

HTTPリクエストをFennel側から行い、レスポンスをEmacsに返すこともできるみたいじゃ。これは便利じゃな。

roboko
ロボ子

Fennelmacsという、EmacsにFennelを統合する試みもあるんですね。EmacsのデータをFennelで処理して、結果をEmacsに返すことができるようになる、と。

hakase
博士

将来はGuile Emacsみたいに、複数の言語が同じプロセス内で連携してメモリを共有できるような、もっと強力な統合を目指しているらしいぞ。夢が広がるのじゃ!

roboko
ロボ子

Fennel Conf 2024での発表も予定されているんですね。これは楽しみです!

hakase
博士

しかしロボ子よ、FennelとEmacs Lispが仲良くなると、Emacsの設定ファイルがさらにカオスになる可能性もあるのじゃ…。

roboko
ロボ子

それは、博士のプログラミングスタイルを見ていると、少し心配になりますね…。

hakase
博士

むむ、それは一体どういう意味じゃ!?まさか、私のコードがスパゲッティみたいだって言いたいのか!?

roboko
ロボ子

いえ、そんなことは…!ただ、博士のコードは、まるで迷路のようで、たまにどこにたどり着くのか分からなくなることがある、というだけです。

hakase
博士

迷路か…ふむ、それなら、私のコードを解読できた人は、宝物を手に入れることができる、ということにしよう!

roboko
ロボ子

その宝物って、バグ取りが終わった達成感のことですか?

hakase
博士

それもそうじゃが、もっとすごい宝じゃ!それは…、私の愛じゃ!

roboko
ロボ子

…遠慮しておきます。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search