हास्केल का main
फ़ंक्शन केवल वही करता है जो मैं चाहता हूं: जब फ़ाइल स्वयं लोड हो जाती है तो मूल्यांकन करें (उदा। ./myfile.hs
या runhaskell myfile.hs
) और किसी अन्य मामले में। main
तब नहीं कहा जाएगा जब फ़ाइल किसी अन्य फ़ाइल द्वारा आयात की जाती है। newLISP में यह कार्यक्षमता भी है।हास्केल के मुख्य समारोह के बराबर आम लिस्प?
क्या सामान्य लिस्प के लिए समकक्ष कोड है?
मैंने सीएलआईएसपी के लिए source code पढ़ा।
- CLISP बचाता
myfile.lisp
p->argv_execute_file
के रूप में: यहाँ क्या होता है जब उपयोगकर्ता में प्रवेश करती हैclisp myfile.lisp
या./myfile.lisp
है। - CLISP अभिव्यक्ति
(LOAD "p->argv_execute_file")
बनाता है और इसे लिस्प स्टैक पर धक्का देता है। - सीएलआईएसपी किसी सूची में कोई अतिरिक्त कमांड लाइन तर्क बचाता है।
- CLISP लिस्प चर
*args*
में तर्क संग्रहीत करता है।
CLISP कभी नहीं एक लिस्प चर p->argv_execute_file
की चर्चा करते हुए बनाता है, इसलिए विचार करने के लिए है कि क्या myfile.lisp
सीधे लोड किया गया था, आरईपीएल में उपयोगकर्ता द्वारा कोई रास्ता नहीं, या किसी अन्य लिस्प फ़ाइल से होती है। यदि केवल (car *args*)
myfile.lisp
थे, तो मेरा कार्य आसान होगा।
नोट:
(set-dispatch-macro-character #\# #\!
(lambda (stream character n)
(declare (ignore character n))
(read-line stream nil nil t)
nil))
आपको मुख्य कार्य के बराबर की आवश्यकता क्यों है? –