बनाने एक अलग फाइल में defpackage डाल करने के लिए यह बेहतर है उदाहरण नीचे कैप्सूलीकरण करने का एक उदाहरण के रूप में पॉल Grahams एएनएसआई कॉमन लिस्प में दी गई है:जब संकुल
(defpackage "CTR"
(:use "COMMON-LISP")
(:export "COUNTER" "INCREMENT" "CLEAR"))
(in-package ctr)
;function definitions here
हालांकि पीटर Seibels में
प्रैक्टिकल कॉमन लिस्प, लिंक here, वे कहते हैं:
क्योंकि संकुल पाठक द्वारा किया जाता है, एक पैकेज परिभाषित किया जाना चाहिए इससे पहले कि आप लोड या संकलन फ़ाइल एक में पैकेज है कि पैकेज का उपयोग करने जा अभिव्यक्ति होता है कि एक फ़ाइल कर सकते हैं। पैकेज को परिभाषित किया जाना चाहिए इससे पहले कि अन्य DEFPACKAGE फॉर्म उन्हें संदर्भित कर सकें ... की आवश्यकता होने पर संकुल मौजूद होने के लिए सबसे अच्छा पहला कदम यह है कि को कोड से अलग फ़ाइलों में अलग से फ़ाइलों में अपने सभी DEFPACKAGEs को अलग करना होगा उन पैकेजों में
तो वह प्रत्येक पैकेज के लिए दो फाइलें बनाने की सिफारिश करता है, एक डिफैकेज और कोड के लिए एक। डिफैकेज वाले फ़ाइलें (इन-पैकेज "COMMON-LISP-USER") से शुरू होनी चाहिए।
मेरे लिए ऐसा लगता है कि इन-पैकेज और कोड से पहले, उसी फ़ाइल में डिफैकेज को डालने जैसा लगता है, यह सुनिश्चित करने के लिए पैकेज को परिभाषित करने का एक अच्छा तरीका है। तो पहली विधि, सब कुछ एक फ़ाइल में इकट्ठा करना आसान लगता है। पैकेज निर्माण के लिए इस विधि का उपयोग करने में कोई समस्या है?
मुझे लगता है कि ऑर्डर चीज उन लोगों का सबसे महत्वपूर्ण कारण है, और एक दूसरे का है: पैकेज कई फाइलों पर विभाजित होते हैं। –
मैं एकल फ़ाइल परियोजनाओं के मामले को छोड़कर, आपसे सहमत हूं, जहां आप एक ही फाइल में पैकेज परिभाषा डाल सकते हैं। AFAIK, यह मानक द्वारा निषिद्ध नहीं है। –
एएसडीएफ का उपयोग करते समय एकाधिक फाइलें और ऑर्डरिंग समझ में आता है। पहले दो अंक व्यक्तिगत वरीयता की तरह दिखते हैं। – snowape