R5RS वाक्य रचना के पुस्तकालय रूपों के लिए मैक्रो परिभाषाओं प्रस्तावित देता है:योजना में लेट्रेक की इस परिभाषा के साथ क्या, यदि कोई है, तो गलत है?
http://schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-10.html#%_sec_7.3
कौन सा भी letrec को परिभाषित करता है, एक बहुत ही जटिल तरीके से, निश्चित रूप से नहीं मैं इसे कैसे परिभाषित करेंगे, मैं बस का प्रयोग करेंगे:
(define-syntax letrec2
(syntax-rules()
((letrec2 ((name val) ...) body bodies ...)
((lambda()
(define name val) ...
body bodies ...)))))
जहां तक मैं लेट्रेक के अर्थशास्त्र को समझता हूं, जिसे मैं अक्सर नामित चलो के रूप में उपयोग करता हूं। यह इस तरह से काम करता है, हालांकि मेरे पास दार्शनिकों के साथ बहस का मेरा उचित हिस्सा था, जो सोचते हैं कि वे केवल विशेष सापेक्षता या स्थापित ध्वन्यात्मक सिद्धांतों को अस्वीकार कर सकते हैं, मुझे पता है कि जब आपको लगता है कि आपके पास जटिल समस्या का एक सरल समाधान है, तो शायद गलत। वहां कुछ बिंदु होना चाहिए जहां यह मैक्रो लेट्रेक के अर्थशास्त्र को संतुष्ट नहीं करता है, अन्यथा शायद उन्होंने इसका इस्तेमाल किया होगा।
इस परिभाषा में, परिभाषाएं लेट्रेक के शरीर के लिए स्थानीय हैं, वे पारस्परिक रिकर्सन के लिए एक दूसरे को संदर्भित कर सकते हैं, मुझे पूरा यकीन नहीं है कि (यदि कोई है) गलत है।
मुझे उद्धृत करते हुए: "आंतरिक परिभाषा केवल कुछ कार्यान्वयन में एक आदिम रूप है।" Schemewiki उद्धरण: "फिर भी, कुछ योजना कार्यान्वयन हैं जो केवल एक आदिम शीर्ष-स्तर की परिभाषा प्रदान करते हैं और Letrecs के संदर्भ में आंतरिक परिभाषा लागू करते हैं ..." आपकी परिभाषा केवल कुछ कार्यान्वयन में काम करती है। मैंने आर 5 आरएस के परिचय को उद्धृत करने के लिए उद्धृत किया कि मुझे लगता है कि आर 5 आरएस लेखकों ने आपके कार्यान्वयन का चयन क्यों नहीं किया। यदि आर 5 आरएस के दर्शन के बारे में मेरा मुद्दा समझ में नहीं आता है, तो मैं इसके बारे में आपके सवालों के जवाब देने को तैयार हूं। – Davorak
@Davorak खैर, तकनीकी रूप से परिभाषा सभी कार्यान्वयन में * काम * होगा। यह सिर्फ कुछ कार्यान्वयन में आंतरिक 'परिभाषित' का उपयोग 'लेट्रेक' के मूल कार्यान्वयन में किया जाएगा। – dubiousjim