की व्याख्या करने में सहायता करें मैं वर्तमान में डोट्स और वैन ईजक द्वारा "द हास्केल रोड टू लॉजिक, मैथ, और प्रोग्रामिंग" पुस्तक के माध्यम से जा रहा हूं। इस पुस्तक तक मुझे कभी भी किसी भी कार्यात्मक प्रोग्रामिंग भाषा के संपर्क में नहीं आया है, इसलिए इसे ध्यान में रखें।सीखना हास्केल: गंभीर रूप से परिपत्र कार्यक्रम - कृपया
फिर भी पुस्तक के शुरू में, यह एक primality परीक्षण के लिए निम्न कोड देता है:
ldp :: Integer -> Integer
ldp n = ldpf primes1 n
ldpf :: [Integer] -> Integer -> Integer
ldpf (p:ps) n | rem n p == 0 = p
| p^2 > n = n
| otherwise = ldpf ps n
primes1 :: [Integer]
primes1 = 2 : filter prime [3..]
prime :: Integer -> Bool
prime n | n < 1 = error "not a positive integer"
| n == 1 = False
| otherwise = ldp n == n
जो प्रधानमंत्री कहता है, जो एलडीपी फिर से कहता है एक उचित रूप में परिपत्र प्रोग्रामिंग कि एलडीपी में चल रही primes1 कहता है, नहीं है। हालांकि पुस्तक यह निष्पादन के रूप में पेश करती है कि कार्यक्रम क्यों निष्पादित करता है और समाप्त करता है:
एलडीपी प्राइम नंबरों की सूची primes1 पर कॉल करता है। यह 'आलसी सूची' का पहला चित्रण है। सूची को 'आलसी' कहा जाता है क्योंकि हम केवल उस सूची का हिस्सा बनाते हैं जिसे हमें आगे की प्रक्रिया के लिए जरूरी है। प्राइम 1 को परिभाषित करने के लिए हमें प्रारंभिकता के लिए एक परीक्षण की आवश्यकता है, लेकिन यह परीक्षण स्वयं एलडी के संदर्भ में परिभाषित किया गया है, जो बदले में primes1 को संदर्भित करता है। हम एक सर्कल में चारों ओर दौड़ते प्रतीत होते हैं। इस सर्कल को 2 के लिए प्रारंभिक परीक्षण से परहेज करके गैर-दुष्परिणाम बनाया जा सकता है। यदि यह दिया जाता है कि 2 प्रमुख है, तो हम एलडी जांच में 2 की प्राथमिकता का उपयोग कर सकते हैं कि 3 प्रमुख है, और इसी तरह, और हम ऊपर हैं और
चल रहा जबकि मुझे लगता है कि मैं इस स्पष्टीकरण को समझते हैं, मैं बहुत यह जानना चाहेंगे अगर किसी laymen संदर्भ में समझा सकता है:
- क्या एक "आलसी सूची" है और यह कैसे इस में लागू होता है संदर्भ?
- यह जानकर कि 2 प्रमुख प्राइम प्रोग्राम को गैर-दुष्प्रभाव की अनुमति देता है?
किसी भी उत्तर की बहुत सराहना की जाती है।
एक दुष्चक्र वह है जहां अप्रियता पास हो जाती है, उदाहरण के लिए boy1 bullies boy2, boy2 अपने पिता को बताता है जो परेशान हो जाता है और उसके कर्मचारियों के लिए इसका मतलब है, जिनमें से एक लड़का 1 का पिता है, जो उसके बेटे पर अपनी निराशा लेता है, जो उसके बाद लड़के को धमकाता है ... एक गैर-दुष्चक्र एक चक्र है जो चारों ओर अप्रियता नहीं लेता है। –
ठीक है, मैं अन्य संदर्भों में इस शब्द से परिचित हूं, लेकिन मैंने इसे कभी भी कार्यक्रमों के विश्लेषण के लिए लागू नहीं किया है। क्या यह एक संभोग है जिसे मैं परिचित नहीं हूं? – Gian
यह हास्केल-आईएसएम नहीं है। 'दुष्चक्र' एक अंग्रेजी भाषा मुहावरे है (चाहे वह अंग्रेजी के लिए विशिष्ट है, मुझे नहीं पता)। घटनाओं का कोई भी परिपत्र अनुक्रम (चाहे जीवन में या प्रोग्रामिंग में) कि आप चाहते हैं कि _not_ को गोलाकार होने के लिए 'दुष्चक्र' कहा जा सके। –