Scala for comprehensions and partial map -


स्काला भाषा विनिर्देश अनुभाग 6.19 कहते हैं:

ए समझने के लिए के लिए (पी एंड एलटी; - ई) उपज e0 को e.map {case p = & gt; E0}

अतः ...

  scala & gt; सूची [या तो [स्ट्रिंग, इन्ट]] = सूची (वाम (बुरा), सही (1) (यानी [स्ट्रिंग, इन्ट]] = सूची (बाएं ("बुरा"), दायां (1) ) स्कला & gt; (वाम (एक्स) & lt; -l) उप-एक्स 5: सूची [स्ट्रिंग] = सूची (खराब)  

अब तक इतनी अच्छी है:

  स्केला & gt; L.map {केस वाम (एक्स) = & gt; X} & lt; कंसोल & gt;: 13: चेतावनी: मैच संपूर्ण नहीं है! लापता संयोजन सही एल.मैप {मामला वाम (एक्स) = & gt; X} ^ scala.MatchError: सही (1) $ anonfun $ 1.apply (& lt; कंसोल & gt;: 13) पर ...  

दूसरा संस्करण काम क्यों नहीं करता है? या फिर, पहला संस्करण क्यों काम करता है?

यदि आप पैटर्न का उपयोग करते हैं अपने के लिए में मिलान करना - संकलक वास्तव में नक्शा लागू करने से पहले एक exampleOf -check के साथ फ़िल्टर पर कॉल डालेंगे कोड>।

संपादित करें:

इसके अलावा अनुभाग 6.19 में यह कहते हैं:

एक जनरेटर पी & lt; - e एक गार्ड द्वारा पीछा अगर जी एक जनरेटर पी & lt; - e.withFilter ((x1, ..., xn) => जी) में अनुवादित किया गया है जहां x1, ..., xn पी के नि: शुल्क चर हैं।

< पी> जब आप बाइटकोक्स का निरीक्षण करते हैं तो आप फ़िल्टर को मैप से पहले कॉल देखेंगे।


Comments

Popular posts from this blog

c# - sqlDecimal to decimal clr stored procedure Unable to cast object of type 'System.Data.SqlTypes.SqlDecimal' to type 'System.IConvertible' -

Calling GetGUIThreadInfo from Outlook VBA -

Obfuscating Python code? -