Clojureは返された関数を呼び出します

一文の要約:()はclojure実行関数であり、evalまたはapplyではありません。テストコードは次のとおりです。

(defn enforce-api-key []
  (fn [x]
   (println x)
   (if (= "key" x)
		(println "===")
		(println "xxx")
		)
	)
)

((enforce-api-key ) "k")

 ((enforce-api-key ) "key")

または

 (defn enforce-api-key [x]
  (fn []
   (println x)
   (if (= "key" x)
		(println "===")
		(println "xxx")
		)
	)
)
(enforce-api-key  "k")
((enforce-api-key  "k"))

 ((enforce-api-key   "key"))

おすすめ

転載: blog.csdn.net/weixin_40455124/article/details/114503681