मैंने अभी देखा है कि स्कैला में मैक्रोज़ हैं, लेकिन मैंने कभी भी ऐसा कोई कोड नहीं देखा है जो उनका उपयोग करता है। वे सी प्रीप्रोसेसर मैक्रोज़ और इसी तरह से काफी अलग दिखते हैं। मैक्रोज़ के overview के माध्यम से पढ़ना, ऐसा लगता है कि वे ऐसा कुछ भी नहीं देते जो स्कैला में पहले संभव नहीं था। ,स्कैला मैक्रोज़, उनका उपयोग कहां किया जाता है?
- भाषा वर्चुअलाइजेशन (अधिक भार/ मूल प्रोग्रामिंग भाषा के शब्दों अधिभावी DSLs की गहरी एम्बेडिंग सक्षम करने के लिए)
- कार्यक्रम reification (: प्रेरणा शीर्षक के अंतर्गत, वहाँ चीजें हैं जो मैक्रो सक्षम की एक सूची है साधनों के साथ कार्यक्रमों को उपलब्ध कराने के उनके खुद कोड),
- स्व अनुकूलन (डोमेन-विशिष्ट अनुकूलन कार्यक्रम reification) के आधार पर की आत्म आवेदन, निरीक्षण करने के लिए
- एल्गोरिथम कार्यक्रम निर्माण (कोड की पीढ़ी जो प्रोग्रामिंग भाषा द्वारा समर्थित अबास्ट्रक्शन के साथ लिखने के लिए कठिन है)।
बाद में मेनू में, इस तरह के प्रकार मैक्रो, quasiquotes, untyped मैक्रो और भी अधिक के रूप में प्रयोगात्मक मैक्रो सुविधाओं, कर रहे हैं। स्पष्ट रूप से इसकी मांग है!
ये सभी लोगों के लिए अच्छी सुविधाएं लगते हैं जो स्केल की मजबूत समझ के साथ बहुत परिष्कृत पुस्तकालयों का निर्माण करते हैं। लेकिन क्या मैक्रोज़ औसत स्कैला डेवलपर के लिए भी कुछ ऑफर करते हैं? मैक्रोज़ का उपयोग करके मेरा स्कैला कोड बेहतर होगा?
आपको लगता है कि रूपरेखा मैक्रो की दिलचस्प प्रयोगों में से कुछ हमारे नवीनतम कागज पर एक नज़र ले जा सकते हैं: http://scalamacros.org/ paperstalks/2013-04-22-LetOurPowersCombine.pdf। –
यहां एक समर्पित दस्तावेज़ साइट आलेख है: http://docs.scala-lang.org/overviews/macros/usecases.html –