なぜ(doc str)
ですか(meta #'str)
?
後者#'
では、最初のものにないのに、なぜ必要なのですか?
doc
#'
渡された名前に内部的に適用されるマクロであるvar
ため、変数自体を渡す必要はありません。meta
は関数であるため、var 自体を渡す必要があります。それ以外の場合は、var の名前だけを使用すると、var の値が渡されます ( で行ったようにdoc
) 。
#'
#'str は (var str) に展開され、Var オブジェクトを返します。ドキュメントを参照してください:
user> (doc meta)
-------------------------
clojure.core/meta
([obj])
Returns the metadata of obj, returns nil if there is no metadata.