उत्तर

2

LINQ अभिव्यक्ति पेड़ सामान्य सी # अभिव्यक्ति में रखे गए किसी भी चीज का प्रतिनिधित्व कर सकते हैं। इस प्रकार, वे सीधे while छोरों, for छोरों, आदि

हालांकि, यह लैम्ब्डा अभिव्यक्ति और प्रत्यावर्तन उपयोग करने के लिए किसी भी यात्रा आप की आवश्यकता हो सकती बाहर ले जाने के सैद्धांतिक रूप से संभव है प्रतिनिधित्व करने के लिए इस्तेमाल नहीं किया जा सकता है। अभ्यास में Enumerable विधियों को अपने पेड़ में छोड़ना आसान हो सकता है।

+0

LINQ अभिव्यक्ति पेड़ रिकर्सन का समर्थन नहीं करते हैं, इसलिए आपका एकमात्र विकल्प मुक्केबाजी और वाई-संयोजक का सहारा लेना प्रतीत होता है, जो बहुत धीमा होगा (फ़ंक्शन कॉल आवंटन)। –

4

पेड़ को निष्पादित करने वाली चीज़ को परिभाषित किए बिना, हम नहीं जानते। सीएलआर की अपनी व्याख्या में (जब आप उन्हें प्रतिनिधियों में संकलित करते हैं) वे हैं। लेकिन यदि आप उन्हें एसक्यूएल में अनुवाद करते हैं, तो वे नहीं हैं, और आप अपनी पसंद की किसी भी संपत्ति के साथ अपनी भ्रमित व्याख्या का आविष्कार कर सकते हैं।

जब तक कि आपने तय नहीं किया है कि उन्हें कैसे समझें, वे केवल डेटा संरचनाएं हैं।

1

ठीक है, आप इसे साबित करने की कोशिश क्यों नहीं करते? मुझे यकीन है कि यह एक मजेदार चुनौती है;)

लेकिन अभिव्यक्ति पेड़ केवल एक अभिव्यक्ति का प्रतिनिधित्व करते हैं और इस तरह आपको इसे परिभाषित करना होगा कि आपको क्या करना है, जैसा कि ईरविकियर ने कहा था।

यदि आप अभिव्यक्ति पेड़ों को रिकर्सन का उपयोग करने की अनुमति देते हैं तो आप लूप और ऐसे के लिए पुनरावृत्ति प्राप्त कर सकते हैं।

हालांकि, untyped lambda कैलकुलेशन ट्यूरिंग-पूर्ण Turing_completeness # उदाहरण हैं, लेकिन लैम्ब्डा कैलकुलेशन प्रति लैम्बडा_calculus प्रति रिकर्सन की अनुमति नहीं देता है # रिकर्सन यह सब बहुत पागल है।

मैं निष्कर्ष निकालूंगा कि अभिव्यक्ति शायद पूर्ण हो रही है लेकिन इसे किसी ऐसे व्यक्ति की आवश्यकता होगी जो इसकी पुष्टि करने के लिए अधिक परिचित है।

+1

आपको पेड़ों को रिकर्सन का उपयोग करने की अनुमति नहीं है - वे पहले से ही हो सकते हैं: http://blogs.msdn.com/madst/archive/2007/05/11/recursive-lambda-expressions.aspx –

21

सी # 3.0 कल्पना अभिव्यक्ति पेड़ों पर खंड के मार्जिन कि कहा में एक टिप्पणी थी के प्रारंभिक मसौदे में:

मैं ट्यूरिंग-पूर्णता की सही मायने में अद्भुत सबूत जो इस मार्जिन भी है शामिल करने के लिए संकीर्ण।

अफसोस की बात है कि कोई भी यह जानने में सक्षम नहीं है कि इसे किसने लिखा है या सबूत विकसित किया है।

+0

हाहाहा। .. मुझे आश्चर्य है कि अगर कोई और इसे प्राप्त करेगा। – TraumaPony

+0

लॉल - बहुत अच्छा। –

+0

थूक के पास ... अच्छा एक। :) –

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