#:g1: リーダーマクロで略語/リテラル表現 その二

Posted 2012-12-09 15:00:00 GMT

今回は、リーダーマクロで略語/リテラル表現 その二です。

構文の略記

『'』とquoteのように、△Xが(○○ X)に変換される例は、沢山あります。

『#'』

『'』以外で、代表的なところでは、Common Lispの『#'』があります。これは、
#'x -> (function x)
という変換がされますが、完全にquoteと同じパターンです。#'xは、Schemeのsyntax-caseだと、(syntax x)に変換され、Clojureでは、(var x)になるとのことで、人気というか、ややこしいです。このパターンを列記すると、等、やはり、それなりに利用頻度が多かったりして簡単に入力したい、というところで良く使われているようです。

リーダーマクロの展開の確認

#?=x のようなものがどういう風に展開されるのか確かめたい、という場合、
'(#?=x)
;=> ((debug-print x))
のようにクォートで囲んでみるのも一つの手です。構文の略記の場合は、どのLisp方言でも大抵この手が使えるようです。

まとめ

今回は、構文の略記を集めてみました。アイデア次第で便利な記法も生み出せますので、色々考えてみると面白いかもしれません。
次回は、リーダーマクロで略語/リテラル表現 その三 です。

comments powered by Disqus