रैंडम के अनंत आलसी seqs उत्पन्न करने के लिए लगभग 2 समान कार्यक्रम। पहला क्रैश नहीं होता है। OutOfMemoryError अपवाद के साथ दूसरा दुर्घटना। क्यूं कर?क्लोजर: आलसी जादू
;Return infinite lazy sequence of random numbers
(defn inf-rand[] (lazy-seq (cons (rand) (inf-rand))))
;Never returns. Burns the CPU but won't crash and lives forever.
(last (inf-rand))
लेकिन दुर्घटना के बाद बहुत जल्दी:
;Return infinite lazy sequence of random numbers
(defn inf-rand[] (lazy-seq (cons (rand) (inf-rand))))
(def r1 (inf-rand))
;Crash with "OutOfMemoryError"
(last r1)
मैं भी एक नौसिखिया हूं, लेकिन आपकी व्याख्या बहुत सही दिखती है। अगर आपने मुझे मार नहीं दिया होता तो मैंने वही बात का जवाब दिया होगा! और 6 अपवित्र आपके साथ सहमत हैं। –
जब मैंने कुछ समय पहले क्लोजर में प्रोजेक्ट यूलर की समस्याएं शुरू कर दीं, तो अनंत आलसी दृश्यों पर मेरे डीबग प्रिंटों ने मेरे कार्यक्रमों को धीमा कर दिया ... असीम रूप से। असीमित आलसी अनुक्रम एक महत्वपूर्ण क्लोजर अवधारणा है जो पकड़ने के लिए आती है। –
बीटीडब्लू, कैसे कोई स्टैक ओवरफ्लो नहीं है। इंफ-रैंड – GabiMe