एफ # गणना अभिव्यक्ति सिंटेक्टिक चीनी की मोटी परत के पीछे मोनैडिक सिंटैक्स की जटिलता को छिपाने की अनुमति देती है। क्या स्कैला में कुछ ऐसा ही उपलब्ध है?स्कैला में हास्केल डू-नोटेशन या एफ # गणना अभिव्यक्तियों के समतुल्य?
मुझे लगता है कि यह comprehensions के लिए है ...
उदाहरण:
val f = for {
a <- Future(10/2) // 10/2 = 5
b <- Future(a + 1) // 5 + 1 = 6
c <- Future(a - 1) // 5 - 1 = 4
} yield b * c // 6 * 4 = 24
val result = f.get
लेकिन यह वास्तव में सही लग रहा है। क्या कोई बेहतर वाक्यविन्यास है?
हास्केल में उदाहरण के लिए यदि आप एक foreach छोरों की तरह नहीं दिखता स्केला के विपरीत
main = do fromHandle <- getAndOpenFile "Copy from: " ReadMode toHandle <- getAndOpenFile "Copy to: " WriteMode contents <- hGetContents fromHandle hPutStr toHandle contents hClose toHandle putStr "Done."
इस होगा। स्कैला वाक्यविन्यास सूची समझ के साथ बहुत मजबूत युग्मन प्रतीत होता है जो एक विशिष्ट अवधारणा है। जो मुझे आंतरिक डीएसएल (मोनैड) लिखने से रोकता है जो अजीब नहीं दिखता है।
'समझ के लिए बिल्कुल सही है। वे दृश्यों के पीछे 'नक्शा' और 'फ्लैटमैप' से वंचित हैं, जो वास्तव में हैस्केल 'डू 'नोटेशन कैसे काम करता है (उन तरीकों को छोड़कर जिन्हें' एफएमएपी 'और' >> = 'हास्केल में कहा जाता है)। –
@ पेलोटॉम मुझे एक ऐसा उत्तर देखना अच्छा लगेगा जो उसमें से कुछ और बताएगा। –
@ डैन बर्टन - इस सवाल से कई बार पूछा गया है और उत्तर दिया गया है ... मैं आपको इस उत्कृष्ट उत्तर में देखूंगा: http://stackoverflow.com/questions/1052476/can-someone-explain-scalas-yield/1059501 # 1059501 –