एक बिंदु जो मुझे स्पष्ट रूप से उल्लिखित नहीं दिखता है (हालांकि इसके लिए सभी दृष्टिकोण) यह है कि वर्गमूल को "व्युत्पन्न" ऑपरेशन के रूप में सोचा जा सकता है: यदि कार्यान्वयन हमारे लिए प्रदान नहीं करता है, तो हम अपना खुद का लिख सकते हैं।
चूंकि प्रश्न भाषा-डिजाइन के साथ टैग किया गया है, इसलिए हम कुछ भाषा-अज्ञेय वर्णन पर विचार कर सकते हैं। हालाँकि कई भाषाओं में अलग-अलग दर्शन होते हैं, फिर भी प्रतिमानों में बहुत आम है कि आक्रमणकारियों को संरक्षित करने के लिए एनकैप्सुलेशन का उपयोग किया जाए; यानी ऐसा मान रखने से बचने के लिए जो इसका प्रकार नहीं सुझाएगा।
उदाहरण के लिए, यदि हमारे पास मशीन शब्दों का उपयोग करते हुए पूर्णांकों का कुछ कार्यान्वयन है, तो हम शायद प्रतिनिधित्व को किसी तरह संलग्न करना चाहते हैं (जैसे कि संकेत को बदलने से बिट शिफ्ट को रोकने के लिए), लेकिन साथ ही हमें अभी भी उन बिट्स तक पहुंच की आवश्यकता है जैसे संचालन को लागू करने के लिए इसके अलावा।
कुछ भाषाएं इसे कक्षाओं और निजी तरीकों से लागू कर सकती हैं:
class Int {
public Int add(Int x) {
// Do something with the bits
}
private List<Boolean> getBits() {
// ...
}
}
मॉड्यूल सिस्टम के साथ कुछ:
signature INT = sig
type int
val add : int -> int -> int
end
structure Word : INT = struct
datatype int = (* ... *)
fun add x y = (* Do something with the bits *)
fun getBits x = (* ... *)
end
शाब्दिक गुंजाइश के साथ कुछ:
(defun getAdder ()
(let ((getBits (lambda (x) ; ...
(add (lambda (x y) ; Do something with the bits
'add))
और इसी तरह। हालांकि, वर्गमूल को लागू करने के लिए इनमें से किसी भी तंत्र की आवश्यकता नहीं है: यह एक संख्यात्मक प्रकार के सार्वजनिक इंटरफ़ेस का उपयोग करके लागू किया जा सकता है , और इसलिए इसे एन्कैप्सुलेटेड कार्यान्वयन विवरण तक पहुंच की आवश्यकता नहीं है।
इसलिए वर्गमूल का स्थान भाषा के दर्शन / स्वाद और पुस्तकालय के डिजाइनर के लिए नीचे आता है। कुछ इसे "अंदर" संख्यात्मक मान (जैसे यह एक उदाहरण विधि बनाने के), कुछ आदिम संचालन के स्तर पर ही यह डाल करने के लिए चुन सकते हैं डाल करने के लिए चुन सकते हैं (यह एक उदाहरण विधि मतलब हो सकता है, या यह रहने वाले मतलब हो सकता है बाहर संख्यात्मक मान, लेकिन एक ही मॉड्यूल / वर्ग / नाम स्थान के अंदर , जैसे एक स्टैंडअलोन फ़ंक्शन या स्थिर विधि के रूप में), कुछ इसे "सहायक" कार्यों के संग्रह में डाल सकते हैं, कुछ इसे तीसरे पक्ष के पुस्तकालयों को सौंपने का विकल्प चुन सकते हैं।
1.sqrt()
मान्य होगा ?