की आवश्यकता है मुझे क्लोजर को यहां वर्णित वाक्यविन्यास की आवश्यकता है (http://clojuredocs.org/clojure_core/1.3.0/clojure.core/require। यह काउंटर अंतर्ज्ञानी और गैर वर्दी दोनों लगता है।क्लोजर के लिए सिंटैक्स राशन
उदाहरण के लिए, के बाद इस सदिश आवश्यक क्यों उद्धृत किया जाना करने के लिए किया जाता है:
(require '[clj-json.core :as json])
काउंटर सहज ज्ञान युक्त क्योंकि सामान्य रूप से वैक्टर clojure में उद्धृत नहीं कर रहे हैं (सूचियों उद्धृत कर रहे हैं और वैक्टर डेटा के रूप में माना जाता है)।
और असमान क्योंकि इस मामले में वेक्टर उद्धृत नहीं है:
(ns xxx
(:require [clj-json.core :as json]))
मुझे लगता है कि समारोह की आवश्यकता होती है और एनएस मैक्रो में किसी एक :require
उपयोग केवल ऑप्टिकली समान है, लेकिन अभी भी कर रहे हैं।
weirdness के अन्य टुकड़े के साथ-साथ, कर रहे हैं, उदाहरण के लिए मैं यह कर सकता:
(require '(clj-json.core))
लेकिन मैं ऐसा नहीं कर सकते:
(require '(clj-json.core :as json))
कोई इन सवालों का जवाब कर सकते हैं:
- पहले उदाहरण में वेक्टर को उद्धृत करने की आवश्यकता क्यों है?
- एनएस मैक्रो में उद्धृत करने की आवश्यकता क्यों नहीं है?
- सूची नोटेशन
:as
क्यों अनुमति नहीं देता है?
मुझे आश्चर्य है कि क्या कारण हैं कि चीजें क्यों हैं, या अगर डिजाइन समय पर असंगतता पर ध्यान नहीं दिया गया था।
चेक बाहर [इस सूत्र] (https://groups.google.com/forum/?fromgroups#!searchin/clojure-dev/ns$20macro/clojure-dev/6EEfdPhrWgk/qJALczHTzpkJ) clojure पर -dev सूची अगर आपने इसे पहले से नहीं देखा है। मैंने इसे काफी जानकारीपूर्ण पाया। – Jeremy