मैं Gentle Introduction के माध्यम से पढ़ रहा हूं और सोच रहा हूं कि क्यों दो जनरेटर के साथ एक सूची समझ में, सही जनरेटर को "सबसे तेज़" (यानी सबसे निचले लूप के लिए संकलित करता है) अनुमानित किया जाता है। निम्नलिखित GHCi उत्पादन का निरीक्षण करें:क्यों सघनतम लूप के रूप में सबसे दायीं ओर का जनरेटर का इलाज कई जनरेटर के साथ हास्केल सूची comprehensions करते हैं?
*Main> concat [[(x,y) | x <- [0..2]] | y <- [0..2]]
[(0,0),(1,0),(2,0),(0,1),(1,1),(2,1),(0,2),(1,2),(2,2)]
*Main> [(x,y) | x <- [0..2], y <- [0..2]]
[(0,0),(0,1),(0,2),(1,0),(1,1),(1,2),(2,0),(2,1),(2,2)]
तो वाम-पंथी जनरेटर सबसे तेजी से दोहराया गया, ऊपर दो भाव एक ही मूल्य है, जो मुझे लगता है कि किसी भी तरह इस सम्मेलन और अधिक प्राकृतिक चुनने बनाता होगा।
तो किसी को पता है क्यों विपरीत सम्मेलन में चुना गया था? मैं नोटिस अजगर हास्केल (भी हो सकता है हास्केल से उधार ली गई?) के रूप में ही सम्मेलन है, और अजगर दुनिया में the word है कि आदेश में चुना गया था "क्योंकि है कि जिस क्रम में आप पाश के लिए एक लिखते हैं कि" लगता है, लेकिन मुझे लगता है छोरों के लिए के मामले में है कि सोच इकट्ठा
विचार जो सबसे हास्केल प्रोग्रामर करना बिल्कुल नहीं है ...?
नीचे लुइस Wasserman के जवाब पर मेरी टिप्पणी से:
मैं यहाँ लगता है कि समझ के एक अनिवार्य शैली व्याख्या करने के लिए इसी क्रम में यह सूची घोंसले के अनुरूप होने की तुलना में अधिक प्राकृतिक माना जाता था। तो संक्षेप में इस के लिए हास्केल स्पष्टीकरण अजगर स्पष्टीकरण मैं प्रश्न में जुड़े हुए के समान ही है, सब के बाद, ऐसा लगता है।
यह * अधिक प्राकृतिक * कैसे होगा? क्या आप 11, 12, 13, 14 के बजाय 11, 21, 31, 41 भी चाहते हैं? – Ingo
मुझे अनुमान है कि '(वाई, एक्स)' प्रोटोटाइपिकल अभिव्यक्ति के रूप में - या वाई जनरेटर को एक्स जनरेटर के बाईं ओर डालने का अनुमान है - अगर बाएं जेनरेटर सबसे कड़े लूप थे तो अधिक समझ में आ जाएगा। फिर यह मेरे जीएचसीआई आउटपुट में दूसरी पंक्ति होगी जो आपको पहले की तुलना में अजीब लगती है (11, 21, 31, 41), लेकिन वे अभी भी एक दूसरे से अलग होंगे, जो मेरा मुद्दा है। – kini
क्षमा करें, मुझे लगता है कि आपको जवाब देने पर मुझे आपको संबोधित करना चाहिए, @Ingo। (स्टैक ओवरफ़्लो के लिए नया प्रकार।) – kini