Haskell filter function laziness -


दिए गए:

  ले 5 (फ़िल्टर पी एक्सएस)   

कहते हैं कि अगर फ़िल्टर पी xs 1K मैच लौटाएगा, क्या हास्केल केवल 5 मैचों को फ़िल्टर कर देगा और बड़े इंटरमीडिएट परिणाम के बिना उत्पादन करेगा?

यह 5 कोड का उपयोग करने के लिए केवल xs को स्कैन करेगा, केवल इस उपसर्ग पर p का मूल्यांकन करेगा xs

अधिक सटीक होने के लिए, यह वास्तव में कम गणना करता है, परिणाम के आधार पर इसका उपयोग कैसे किया जाता है। उदाहरण के लिए,

  मुख्य = दो पी एक्स = (एक्स == 3) || (X> = 1000000) list1 = [0..1000000000] list2 = take5 (फ़िल्टर पी सूची 1) प्रिंट (सिर list2)   

केवल list1 स्कैन करेगा जब तक 3 पाया जाता है, और तब तक नहीं, जबकि ले लो पांच तत्वों के लिए पूछ रहा है इसका कारण यह है कि head इन पांचों में से केवल पहले की मांग कर रहा है, इसलिए आलस्य केवल इसका मूल्यांकन करने का कारण बनता है।

Comments

Popular posts from this blog

How can I add a seperate action listener to all 14 of my buttons at once that can determine player turn?(java) -

php - Sorting an multidimension array using usort fails -

Simple file compression in C -