मैंने अभी हास्केल सीखना शुरू कर दिया है और एक अजीब चीज पाई है।हास्केल में श्रेणियों का उपयोग करते समय मानचित्र एक अतिरिक्त तत्व क्यों लौटाता है?
ghci> [0,2..5]
[0,2,4]
यह 3 तत्व हैं:
Let हम एक सूची है। जब मैं इस सूची के साथ map
का उपयोग मैं आउटपुट के रूप में 3 तत्व मिलता है, उदाहरण के लिए:
ghci> map (+ 1) [0,2..5]
[1,3,5]
ghci> map (* 2) [0,2..5]
[0,4,8]
ghci> map (`div` 2) [0,2..5]
[0,1,2]
लेकिन जब मैं आंशिक विभाजन का उपयोग मैं उत्पादन सूची में 4 तत्वों मिलती है:
ghci> map (/ 2) [0,2..5]
[0.0,1.0,2.0,3.0]
ghci> length (map (/ 2) [0,2..5])
4
आप कृपया क्यों समझा सकते हैं map
अधिक तत्व लौटा सकता है तो यह था?
धन्यवाद!
संबंधित: http://stackoverflow.com/q/7290438/2541573 – Jubobs
ध्यान दें कि 'लंबाई (मानचित्र एफ xs) == लंबाई (नक्शा एफ' xs ') 'प्रत्येक' लंबाई xs == लंबाई xs'' के लिए । यह * टाइप * के कार्यान्वयन पर स्वतंत्र रूप से सच होना चाहिए क्योंकि यह इसके प्रकार से निकला है। 'नक्शा' विभिन्न प्रकारों के बीच अंतर करने में सक्षम नहीं है और इसलिए निर्णय लिया कि कितने तत्व लौट सकते हैं। – Bakuriu