3

なぜ(doc str)ですか(meta #'str)

後者#'では、最初のものにないのに、なぜ必要なのですか?

4

2 に答える 2

5

doc#'渡された名前に内部的に適用されるマクロであるvarため、変数自体を渡す必要はありません。metaは関数であるため、var 自体を渡す必要があります。それ以外の場合は、var の名前だけを使用すると、var の値が渡されます ( で行ったようにdoc) 。

于 2012-08-22T05:00:57.367 に答える
0

#'#'str は (var str) に展開され、Var オブジェクトを返します。ドキュメントを参照してください:

user> (doc meta)
-------------------------
clojure.core/meta
([obj])
  Returns the metadata of obj, returns nil if there is no metadata.
于 2012-08-22T04:21:08.260 に答える