मैंने मानचित्र के उपयोग के माध्यम से कोड को बहुत सरल बनाने के लिए उच्च आदेश कार्यों का उपयोग करने के विचार के बारे में जोएल ऑन सॉफ्टवेयर पर एक लेख पढ़ा और कम किया। उन्होंने उल्लेख किया कि जावा में करना मुश्किल था। लेख: http://www.joelonsoftware.com/items/2006/08/01.htmlमैं मानचित्र जैसे उच्च आदेश फ़ंक्शन कैसे लिख सकता हूं, या जावा में कम कर सकता हूं?
नीचे दिए गए लेख से उदाहरण के लिए, एक सरणी के माध्यम से लूप होता है, और fn कि सरणी में प्रत्येक तत्व पर एक तर्क के रूप पारित किया गया था फ़ंक्शन का उपयोग करता:
function map(fn, a)
{
for (i = 0; i < a.length; i++)
{
a[i] = fn(a[i]);
}
}
यह समान लागू किया जाएगा नीचे करने के लिए व्यवहार में:
map(function(x){return x*2;}, a);
map(alert, a);
आदर्श रूप में मैं सरणियों, या किसी भी प्रकार यदि संभव हो तो के संग्रह पर काम करने के एक नक्शे के समारोह लिखने के लिए करना चाहते हैं।
मैं इंटरनेट पर चारों ओर देख रहा हूं, और मुझे इस विषय पर संसाधन खोजने में मुश्किल हो रही है। सबसे पहले, जावा में अज्ञात कार्य संभव हैं? क्या यह किसी अन्य तरीके से करना संभव है? क्या यह जावा के भविष्य के संस्करण में उपलब्ध होगा? यदि संभव हो, तो मैं इसे कैसे कर सकता हूं?
मुझे कल्पना है कि यदि जावा में यह संभव नहीं है तो कुछ प्रकार की 'पैटर्न'/तकनीक है जो लोग समान प्रभाव प्राप्त करने के लिए उपयोग करते हैं, क्योंकि मुझे लगता है कि अज्ञात फ़ंक्शन सॉफ़्टवेयर दुनिया में एक बहुत ही शक्तिशाली टूल हैं। एकमात्र ऐसा प्रश्न जिसे मैं ढूंढने में सक्षम था यह था: Java generics - implementing higher order functions like map और यह मुझे बिल्कुल समझ में नहीं आता है।
वास्तव में ऐसा लगता है कि जब जावा अंततः लैम्ब्डा अभिव्यक्ति प्राप्त करता है, तो वे इस तरह के अज्ञात वर्ग में परिवर्तनीय होंगे। – hammar