Google के गो प्रोग्रामिंग लैंग्वेज में मैथ लाइब्रेरी के तरीके


9

मैं Google गोलंग में प्रोग्रामिंग कर रहा हूं और अपनी संक्षिप्तता के कारण इसका आनंद ले रहा हूं लेकिन मुझे यह आश्चर्यजनक लगता है कि लगभग सभी मैथ स्टैंडर्ड लाइब्रेरी तरीके फ्लोटिंग पॉइंट टाइप के लिए हैं। क्या कोई विशेष कारण है कि ये विधियाँ ints के लिए मौजूद नहीं हैं?

जवाबों:


9

संक्षिप्त उत्तर यह है कि गो, सी का उत्तराधिकारी है, और सी का मानक गणित पुस्तकालय भी एकल और दोहरे परिशुद्धता फ्लोटिंग पॉइंट वैल्यू के संदर्भ में लगभग विशेष रूप से परिभाषित है।

लंबे समय तक उत्तर यह है कि बहुरूपता या फ़ंक्शन के बिना एक स्टैटिकली टाइप की गई भाषा में, जैसे गो (या C) ओवरलोडिंग, आपको पहले से लेने और वापस आने के लिए एक फ़ंक्शन के लिए एक प्रकार पर समझौता करने की आवश्यकता है, और एक बार जब आप से निपटने जा रहे हैं आपकी गणित लाइब्रेरी में विशिष्ट प्रकार, पूर्णांक की तुलना में फ़्लोटिंग पॉइंट संख्याओं पर बहुत अधिक रोचक संचालन हैं। कुछ उदाहरण लेने के लिए

  • पूर्णांक या फ्लोटिंग पॉइंट संख्या का वर्ग या nth रूट आमतौर पर पूर्णांक के रूप में प्रतिनिधित्व करने योग्य नहीं होता है

  • ट्रान्सेंडैंटल फ़ंक्शंस के बहुत कम दिलचस्प मूल्य पूर्णांक के रूप में प्रतिनिधित्व करने योग्य हैं

  • फ्लोटिंग पॉइंट वैल्यू के विभाजन को पूर्णांकों के विभाजन की तुलना में कम गोलाई की आवश्यकता होती है

ध्यान दें कि यह उतना महत्वपूर्ण नहीं है जितना कि यह प्रतीत हो सकता है कि आपके इनपुट मान पूर्णांक हैं - एक अभिन्न मान को एक साधारण टाइपकास्ट के साथ एक फ्लोटिंग पॉइंट मान में परिवर्तित किया जा सकता है, और अधिकतर सटीक।

तो यह है कि गो या सी जैसी भाषाओं के लिए कहानी है। अन्य भाषाओं में अन्य विकल्प हैं:

  • डायनामिक रूप से टाइप की गई भाषा गणित की लाइब्रेरी फ़ंक्शंस प्रदान कर सकती है, जो कई प्रकारों को लेती है या उनके आधार पर वापस आती है, जो इस बात पर निर्भर करती है कि क्या पूर्णांक एक पूर्णांक के रूप में प्रतिनिधित्व योग्य है या नहीं।

  • फ़ंक्शन ओवरलोडिंग के साथ एक भाषा एक ही फ़ंक्शन के कई संस्करण प्रदान कर सकती है, आपके द्वारा उत्तीर्ण प्रकारों के आधार पर (सख्ती से, ये एक ही नाम के साथ कई फ़ंक्शन हैं, जैसा कि गतिशील रूप से टाइप किए गए मामले से अलग है)

  • प्रकार की बहुरूपता वाली भाषा (जैसे कि विरासत के साथ वस्तु उन्मुख भाषा) एक सुपरक्लास "संख्या" को पूर्णांक और फ्लोटिंग पॉइंट मान दोनों के लिए उपवर्गों के साथ परिभाषित कर सकती है, और फिर इस संख्या वर्ग के संदर्भ में गणित के कार्यों को परिभाषित कर सकती है। इस दृष्टिकोण में डायनेमिक भाषा के दृष्टिकोण का लचीलापन है, जबकि स्थिर या फ़ंक्शन-ओवरलोडिंग दृष्टिकोण की सख्ती का बहुत ध्यान रखते हुए।

हालाँकि इनमें से कोई भी विशेषता नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.