clojure/lispマクロの書き方を学ぶための予約[閉じた
-
01-10-2019 - |
質問
私は「プログラミングClojure」を読んでいますが、マクロを可能な限り広範囲に作成する方法を議論する本に興味があります。
このための本を提案しますか?
ありがとう。
解決
リスプマクロに関する典型的な本はおそらくポールグラハムのものです Lispで. 。ただし、一般的なLISPを使用しましたが、マクロを本当に見たいと思っている場合はそれほど重要ではありませんが、Clojureはさまざまなレベルで異なります。 (最初はLISP-1であるClojure。)
他のヒント
どちらも一般的なLISPを対象としていますが、これのための2つの素晴らしい本は Lispで ポール・グラハム(フルブックはオンラインで無料で入手可能 彼のウェブサイト) と ラムダの上にしましょう ダグ・ホイテによる。
2の Lispで よりアクセスしやすいです。 Clojureマクロはスキームの衛生的なマクロにより似ていますが、ほぼ確実に何かを学ぶでしょう。
マイケル・フォガスの今後の本 Clojureの喜び, 、ManningのEarly Accessプログラムで利用できるように、Macroの良い章があります。これは、機能プログラミングの背後にある考え方を説明する優れた本であり、どのようにする方法だけでなく、Clojureの機能(最新の1.2変更を含む)がそのように実装される理由です。
Macro'sの章では、ClojureのMacroの以下のユースケース、それらの実装方法、およびそれらの処理方法について説明します。
制御構造の定義
フォームを組み合わせます
フォームの変更
フォームを返す
シンボリック解決時間を制御します
リソースを管理します
本「Practical Common Lisp」は、Lisp Macrosを非常に明確に説明しています。 Clojureのマクロは、あなたが学ぶことのほとんどすべてが持ち越すことができる一般的なLISPのマクロと十分に似ています。 「Let over Lambda」は、楽しく、面白く、創造的な作品ですが、Lispマクロを使用して、最も深刻で経験豊富な実用的なLISPプログラマーが使用する方法とは非常に異なって使用しています。 「アナモルフィック」マクロの使用をお勧めしません(特定の変数名について「知っている」)。
それはまさに汎用マクロライティングの本ではありませんが モップ ライブラリ/フレームワークの「ビュー」レイヤーとしてマクロを使用する方法を示します。
(うーん、私はこれを説明するのはあまり良い仕事をしていません。Amopは、分類を無視する本です!)