संपादित करें: मैं सवाल को थोड़ा सा दोहरा रहा हूं। जाहिरा तौर पर मैंने कुछ भ्रम का कारण बना क्योंकि मुझे एहसास नहीं था कि विध्वंसक शब्द OOP में कुछ अलग तरह से उपयोग किया जाता है - यह एक फ़ंक्शन है जब किसी ऑब्जेक्ट को नष्ट किया जा रहा है। कार्यात्मक प्रोग्रामिंग में हम (उत्परिवर्तित) उत्परिवर्तित अवस्था से बचते हैं, इसलिए इसके बराबर नहीं है। (मैंने प्रश्न के लिए उचित टैग जोड़ा है।)
इसके बजाय, मैंने देखा है कि एक मूल्य को उजागर करने के लिए रिकॉर्ड फ़ील्ड (विशेष रूप से एकल-मूल्यवान डेटा प्रकारों जैसे कि newtype
) को कभी-कभी विध्वंसक या शायद डिकंस्ट्रक्टर कहा जाता है । उदाहरण के लिए, आइए (हास्केल में):
newtype Wrap = Wrap { unwrap :: Int }
यहाँ Wrap
कंस्ट्रक्टर है और unwrap
क्या है?
प्रश्न हैं:
- हम
unwrap
कार्यात्मक प्रोग्रामिंग में कैसे कॉल करते हैं ? Deconstructor? नाशक? या किसी और शब्द से? - और स्पष्ट करने के लिए, क्या यह / अन्य शब्दावली अन्य कार्यात्मक भाषाओं पर लागू है , या क्या यह केवल हास्केल में उपयोग किया जाता है?
- शायद, सामान्य रूप से गैर-कार्यात्मक भाषाओं में भी इसके लिए कोई शब्दावली है ?
मैंने उदाहरण के लिए दोनों शब्द देखे हैं:
... सबसे अधिक, एक इन के साथ काम करने में आसानी के लिए स्मार्ट कंस्ट्रक्टर और डिस्ट्रक्टर्स की आपूर्ति करता है। ...
पर हास्केल विकी , या
... यहाँ सामान्य विषय है कंस्ट्रक्टर फ्यूज करना - डिकंस्ट्रक्टर जोड़े जैसे ...
पर हास्केल wikibook (यहाँ यह शायद थोड़ा अधिक सामान्य अर्थ में मतलब है), या
newtype DList a = DL { unDL :: [a] -> [a] }
UnDL समारोह हमारे है Deconstructor , जो डीएल निर्माता निकाल देता है। ...
में असली दुनिया हास्केल ।