हां, रिटर्न प्रकारों पर ओवरलोडिंग की अनुमति एक भाषा को जटिल बनाती है। यह अधिभारित पहचानकर्ताओं (जैसे फ़ंक्शन नाम) के समाधान को जटिल बनाता है। लेकिन यह असंभव नहीं है, उदा। हास्केल उनके रिटर्न प्रकार के आधार पर फ़ंक्शन ओवरलोड करने की अनुमति देता है।
class Num a where
fromInteger :: Integer -> a
...
Num
एक विधि fromInteger
कहा जाता है एक मनमाना प्रकार है जो Num
का एक उदाहरण है करने के लिए मनमाने ढंग से आकार Integer
से एक समारोह है, जिसके साथ हास्केल में एक प्रकार वर्ग है। हास्केल प्रकार वर्ग तंत्र वस्तु-उन्मुख भाषाओं की कक्षा अवधारणा से अलग है। इसलिए मेरी व्याख्या अजीब लग सकती है।
लेकिन परिणाम यह है कि मैं इंटेगर से फ़ंक्शन का उपयोग कर सकता हूं और कॉलिंग संदर्भ के आधार पर, विभिन्न कार्यान्वयन संकलन समय पर chooen हैं।
टाइप सिस्टम पर शोध की एक पूरी श्रृंखला है, जिसने इस सुविधा को संभव बनाया है। इसलिए, मैं कहूंगा कि यह स्थिर रूप से टाइप की गई भाषाओं में काम करने योग्य है। गतिशील रूप से टाइप की गई भाषाओं को या तो समय-यात्रा या कुछ चालाक विचारों की आवश्यकता होगी।
क्या आपने LISP की कोशिश की है ?? यदि कोशिश नहीं की जाती है, तो यह आपकी समस्या का समाधान कर सकती है। – Zinx
संभावित डुप्लिकेट [वापसी प्रकार द्वारा फ़ंक्शन ओवरलोडिंग?] (Http://stackoverflow.com/questions/442026/function-overloading-by-return-type) – nawfal