Noob सवाल में काम करने के लिए,, Win7 64-बिट का उपयोग कर Clojure 1.2.0, जावा 1.6.0_22clojure
pprint प्राप्त नहीं कर सकते मैं कमांड लाइन से clojure शुरू, pprint समारोह आसानी से उपलब्ध है।
user=> pprint
#<pprint$pprint [email protected]>
user=> (pprint "hi")
"hi"
nil
user=>
लेकिन जब मैं किसी फ़ाइल से पप्रिंट का उपयोग करने का प्रयास करता हूं, तो मुझे एक त्रुटि मिलती है। इस के साथ और नाम स्थान के बिना होता है (एनएस ...: की आवश्यकता होती है ...) के रूप में pprint प्रलेखन में दिखाया गया
CLJ फ़ाइल इस प्रकार है:
(ns whatevah
(:require clojure.pprint))
(pprint "hi")
त्रुटि इस प्रकार है:
C:\Users\mischw\code\Clojure>java -cp ";c:\users\mischw\code\clojure\classes\*;c:\Program Files (x86)\Java\SWT;c:\users\mischw\code\clojure\classes\bookcode\*" clojure.main swinglearn.clj
Exception in thread "main" java.lang.Exception: Unable to resolve symbol: pprint in this context (swinglearn.clj:14)
... 21 more
Output completed (0 sec consumed) - Normal Termination
मैं यहां क्या हो रहा है सामान्य विचार समझ में नहीं आता है। एक काम क्यों करता है लेकिन दूसरा नहीं? क्या उन्हें नेमस्पेस के साथ क्या करना है? Classpaths? कुछ और सरल फिक्स? स्पष्ट रूप से नोब प्रश्न, लेकिन मुझे लगता है कि यह उदाहरणों के समूह के साथ होता है ... मैं उन्हें चलाने में असमर्थ हूं, भले ही यह आयात/उपयोग/आवश्यकता/उन्हें शामिल करने के लिए सीधा लगता है।
बहुत बढ़िया है, धन्यवाद, यह काम किया :)। मुझे पता था कि यह आसान था। तो प्रतिलिपि स्वचालित रूप से 'उपयोग' clojure.pprint क्यों उपयोग करता है? मैं कैसे पता लगा सकता हूं कि प्रतिलिपि किस नामस्थान को लोड कर चुकी है, इसलिए अगली बार जब मुझे यह समस्या मिलती है तो मैं इसे समझ सकता हूं? – Sonicsmooth
प्रतिलिपि स्वचालित रूप से ऐसा नहीं करती है। आपके पास कुछ पागल प्रतिकृति-लॉन्चिंग स्क्रिप्ट है जो आपके लिए यह करती है; यदि आप अपनी प्रतिलिपि लॉन्च करने के तरीके के बारे में अधिक जानकारी देते हैं तो आपको एक उत्तर मिल सकता है। – amalloy