--- title: section8 tags: macro --- ### 8 参考文献と謝辞 Eli Barzilay氏のブログ記事[Writing 'syntax-case' Macros](https://blog.racket-lang.org/2011/04/writing-syntax-case-macros.html)は、多くの重要な詳細や概念を理解するのに役立ち、「ボトムアップ」のアプローチを使うきっかけとなりました。 また、Eli Barzilay氏は[Dirty Looking Hygiene](http://blog.racket-lang.org/2008/02/dirty-looking-hygiene.html)というブログ記事を書いており、[syntax-parameterize](https://docs.racket-lang.org/reference/stxparam.html#%28form._%28%28lib._racket%2Fstxparam..rkt%29._syntax-parameterize%29%29)について説明しています。PLT SchemeがRacketに名称変更される前に書かれたものなので、私はこの記事を大いに参考にしました。 Matthew Flatt氏の[Composable and Compilable Macros: You want it When? (PDF)](http://www.cs.utah.edu/plt/publications/macromod.pdf)では、Racketがコンパイル時とランタイム時にどのような処理を行うかが説明されています。 Kent Dybvig著「The Scheme Programming Language」の[第8章](http://www.scheme.com/tspl4/syntax.html#./syntax:h0)に、 [syntax-rules](https://docs.racket-lang.org/reference/stx-patterns.html#%28form._%28%28lib._racket%2Fprivate%2Fstxcase-scheme..rkt%29._syntax-rules%29%29)と[syntax-case](https://docs.racket-lang.org/reference/stx-patterns.html#%28form._%28%28lib._racket%2Fprivate%2Fstxcase-scheme..rkt%29._syntax-case%29%29)の説明があります。 [Fortifying Macros (PDF)](http://www.ccs.neu.edu/racket/pubs/icfp10-cf.pdf) は、Ryan CulpepperとMatthias Felleisenによる[syntax-parse](https://docs.racket-lang.org/syntax/Parsing_Syntax.html#%28form._%28%28lib._syntax%2Fparse..rkt%29._syntax-parse%29%29)を紹介した論文です。 Shriram Krishnamurthiが非常に初期のドラフトを見て、私に続けるように勧めてくれました。Sam Tobin-HochstadtとRobby Findlerも私を励ましてくれました。Matthew FlattはScribbleのインタラクションでシンタックスを "#'"ではなく "syntax "として出力する方法を教えてくれました。Jay McCarthyはいくつかの間違いや混乱を指摘してくれました。Jon Rafkind は提案をしてくれました。Kieron Hardy はフォントの問題といくつかのタイプミスを報告してくれました。 最後に、私は奇妙なことに気づきました。ここまで書いてきて、Racketのドキュメントのいくつかの部分に戻ってみると、前回読んだときよりも改善されていることに気づきました。もちろん、それは同じで、私が変わったのです。私たちがすでに知っていることの多くが、行間に投影されているのは興味深いことです。私が言いたいのは、Racket のドキュメントは非常に優れているということです。ガイドには役立つ例やチュートリアルが掲載されています。また、リファレンスは非常に明確で正確です。 * [previous section(7 堅牢なマクロ:syntax-parse)](https://hackmd.io/sCt8NNyTTc6XyPrCCaMIPw) * [top menu](https://hackmd.io/2BTooD3wSEiqaR1dQ7vKEA?view)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up