2010-01-02 7 views
18

या क्या मुझे विशेष रूप से आयात करने वाली हर कक्षा का आकलन करना है?क्या क्लोजर के पास जावा के आयात पैकेज के बराबर है। *?

मैं बस अब Clojure सीख रहा हूँ, और यह आरईपीएल में इस तरह कुछ करने के लिए सक्षम होने के लिए उपयोगी लगता है:

(import '(java.io *)) 
ऐसा नहीं है कि यह मान्य सिंटैक्स है

है, लेकिन यह कुछ है करने के लिए अच्छा होगा यह समकक्ष करता है। यह कुछ टाइपिंग को बचाएगा, खासकर जब चारों ओर झुकाव हो। वास्तविक उत्पादन कोड में मैं हमेशा भाषा के बावजूद आयात करने वाले प्रत्येक वर्ग का आकलन करता हूं, लेकिन ऐसा करना बहुत सुविधाजनक है।

उत्तर

19

रिच हिकी explains why it is not possible

+3

बमर। मैं उनकी सोच की सराहना करता हूं कि यह एक अच्छा विचार क्यों नहीं है, लेकिन मैं इस तरह की भाषा को इस तरह से बाधित नहीं करना चाहूंगा, खासकर जब आरईपीएल में खेल रहा हो। – Jeff

+2

नोट यह एक स्पष्टीकरण है कि रनटाइम पर कुशलता से काम करना क्यों संभव नहीं है। संकलन समय पर इसे काम करने के लिए बनाया जा सकता है (जाहिर है, यही कारण है कि आप इसे जावा में कर सकते हैं .....) – mikera

1

जब तक मैं एक अपडेट याद नहीं करता, तब तक जंगली कार्ड में क्लोजर में नामस्थान में पैकेज शामिल करने का कोई तरीका नहीं है।

1

वर्तमान में ऐसा करने का कोई तरीका नहीं लगता है। आयात मैक्रो केवल निर्दिष्ट नामस्थान में निर्दिष्ट कक्षाओं को आयात करने के लिए है। मैंने जो कुछ भी आप चाहते हैं उसे करने के लिए मैंने एक और मैक्रो लिखने की कोशिश की है, लेकिन क्लोजर द्वारा उपयोग किए जाने वाले वर्ग लोडर के साथ ऐसा संभव नहीं लगता है क्योंकि यह हमें पैकेज संसाधनों तक पहुंचने नहीं देता है।

संबंधित मुद्दे