दिलचस्प पोस्ट
मैं उद्देश्य-सी में निरंतर के रूप में एक सरणी कैसे घोषित करूं? मेवेन बिल्ड में समानांतर में रनिंग जॉनीट टेस्ट? JQuery में माउस पहिया ईवेंट प्राप्त करें? एक फाइल reparse करने के लिए Logstash मजबूर करने के लिए कैसे? आईओएस क्रैश रिपोर्ट: एटोस अपेक्षित रूप से काम नहीं कर रहा है Regex का उपयोग करने के बजाय स्ट्रिंग उत्पन्न करने के लिए उन्हें मैच मैं अपने ArrayList थ्रेड-सेफ कैसे बना सकता हूं? जावा में समस्या के लिए एक और तरीका है? एक div के भीतर चर ऊंचाई के साथ ऊर्ध्वाधर केंद्र कैसे करें? जावास्क्रिप्ट के जरिए मैं वेबकिट सीएसएस एनीमेशन को फिर से ट्रिगर कैसे करूं? ब्राउज़र के बिना जावास्क्रिप्ट निष्पादित करना? स्थानीय चर पर कचरा संग्रहण @ फॉन्ट-चेहरे फोंट लोड किए जाने पर जानने के लिए jQuery का उपयोग करना? Schema.org शाखा का उपयोग करें itemref से प्रत्येक दस्तावेज़ में अतिरिक्त फ़ील्ड के साथ एक प्रतिक्रियाशील प्रकाशन बनाएं XPath मूल्यांकन से पहले स्ट्रिंग में डबल उद्धरण कैसे संभालना है?

"फ़ंक्शन" और "प्रक्रिया" के बीच अंतर क्या है?

सामान्यतया, हम सभी प्रोग्रामिंग भाषाओं में कार्य या प्रक्रियाओं के बारे में सुनते हैं। हालांकि, मुझे अभी पता चला है कि मैं इन शब्दों का उपयोग लगभग एक दूसरे के लिए करता हूं (जो शायद बहुत गलत है)।

तो, मेरा सवाल है:

उनकी कार्यक्षमता, उनके उद्देश्य और उपयोग के मामले में क्या अंतर है?

एक उदाहरण की सराहना की जाएगी।

वेब के समाधान से एकत्रित समाधान ""फ़ंक्शन" और "प्रक्रिया" के बीच अंतर क्या है?"

फ़ंक्शन एक मान देता है और एक प्रक्रिया सिर्फ आज्ञाओं को कार्यान्वित करती है

नाम समारोह गणित से आता है। यह इनपुट के आधार पर एक मूल्य की गणना करने के लिए उपयोग किया जाता है।

एक प्रक्रिया आदेश का एक सेट है जिसे क्रम में निष्पादित किया जा सकता है।

अधिकांश प्रोग्रामिंग भाषाओं में, यहां तक ​​कि कार्यों में आदेशों का एक सेट हो सकता है इसलिए फर्क सिर्फ एक मूल्य भाग लौटने में है।

लेकिन अगर आप एक समारोह को साफ रखना चाहते हैं, (केवल फ़ंक्शनल भाषाएं देखें), तो आपको यह सुनिश्चित करने की आवश्यकता है कि फ़ंक्शन का कोई दुष्प्रभाव नहीं है।

यह संदर्भ पर निर्भर करता है

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

सी-जैसे भाषाओं में, और कई अन्य समकालीन भाषाओं में, यह भेद समाप्त हो गया है; स्थिर रूप से टाइप की गई भाषाओं में, प्रक्रियाएं सिर्फ अजीब रिटर्न प्रकार के साथ कार्य होती हैं I यह शायद इसलिए है कि वे एक दूसरे के लिए उपयोग किया जाता है

कार्यात्मक भाषाओं में, आम तौर पर प्रक्रिया जैसी कोई चीज नहीं होती – सब कुछ एक फ़ंक्शन होता है।

सी में उदाहरण:

 // function int square( int n ) { return n * n; } // procedure void display( int n ) { printf( "The value is %d", n ); } 

हालांकि आपको यह ध्यान रखना चाहिए कि सी स्टैंडर्ड प्रक्रियाओं के बारे में बात नहीं करता है, केवल कार्य करता है

सामान्य तौर पर, एक प्रक्रिया निर्देशों का एक क्रम है
एक फ़ंक्शन एक ही हो सकता है, लेकिन आमतौर पर इसका परिणाम परिणाम देता है।

एक शब्द उपनगरीय या उपप्रोग्राम है, जो कि कोड के एक पैरामीटर वाला टुकड़ा है जिसे विभिन्न स्थानों से कहा जा सकता है।

कार्य और प्रक्रियाएं उन के कार्यान्वयन हैं आमतौर पर कार्यों को वापस लौटाता है और प्रक्रियाएं कुछ भी वापस नहीं करती हैं।

अधिक सख्ती से, एक समारोह एफ यह मान करता है कि f (x) = f (y) अगर x = y, यानी यह प्रत्येक बार एक ही तर्क के साथ बुलाया जाता है (और इस प्रकार यह स्थिति की स्थिति नहीं बदलती है प्रणाली।)

इस प्रकार, रैंड () या प्रिंट ("हैलो"), आदि फ़ंक्शन नहीं हैं, लेकिन प्रक्रियाएं। जबकि sqrt (2.0) एक फ़ंक्शन होना चाहिए: कोई भी अवलोकन प्रभाव या राज्य परिवर्तन कोई फर्क नहीं पड़ता कि यह कितनी बार कॉल करता है और यह हमेशा 1.41 और कुछ का रिटर्न देता है।

अंदर की प्रक्रिया हम डीएमएल (डालें / अपडेट / हटाएं) कथन का उपयोग कर सकते हैं, लेकिन फ़ंक्शन के अंदर हम डीएमएल स्टेटमेंट का उपयोग नहीं कर सकते हैं।

प्रक्रिया में इनपुट आउटपुट पैरामीटर दोनों हो सकते हैं, लेकिन फ़ंक्शन में केवल इनपुट पैरामीटर हो सकता है।

हम संग्रहित प्रक्रिया में Try-Catch ब्लॉक का उपयोग कर सकते हैं, लेकिन फ़ंक्शन में हम कोशिश-कैच ब्लॉक का उपयोग नहीं कर सकते।

हम चयन बयान में संग्रहीत प्रक्रिया का उपयोग नहीं कर सकते, लेकिन फ़ंक्शन में हम चयन बयान में उपयोग कर सकते हैं।

संग्रहित प्रक्रिया 0 या n मान (अधिकतम 1024) वापस कर सकती है, लेकिन फ़ंक्शन केवल 1 मान वापस कर सकता है जो अनिवार्य है।

संग्रहीत प्रक्रिया को फ़ंक्शन से कॉल नहीं किया जा सकता है, लेकिन हम संग्रहित प्रक्रिया से फ़ंक्शन को कॉल कर सकते हैं।

हम संग्रहित प्रक्रिया में लेनदेन का उपयोग कर सकते हैं, लेकिन फ़ंक्शन में हम लेनदेन का उपयोग नहीं कर सकते।

हम जहाँ कहीं भी / होने / चयन अनुभाग में एसक्यूएल स्टेटमेंट में संग्रहीत प्रक्रिया का उपयोग नहीं कर सकते, लेकिन फ़ंक्शन में हम उपयोग कर सकते हैं।

हम संग्रहीत प्रक्रिया में शामिल नहीं हो सकते, लेकिन हम फ़ंक्शन को शामिल कर सकते हैं।

अधिक के लिए यहां क्लिक करें … http://dotnet-developers-cafe.blogspot.in/2013/08/difference-between-stored-procedure-and.html

बुनियादी अंतर

  • फ़ंक्शन को एक मान वापस करना होगा लेकिन संग्रहीत प्रक्रिया में यह वैकल्पिक है: एक प्रक्रिया 0 या n मान वापस कर सकती है।
  • फ़ंक्शंस में इसके लिए केवल इनपुट पैरामीटर हो सकते हैं, जबकि प्रक्रियाओं में इनपुट / आउटपुट पैरामीटर हो सकते हैं।
  • फ़ंक्शन के लिए एक इनपुट पैरामीटर लेना अनिवार्य है, लेकिन एक संग्रहित प्रक्रिया में 0 से एन इनपुट पैरामीटर लग सकते हैं।
  • कार्यों को एक प्रक्रिया से कहा जा सकता है जबकि प्रक्रियाएं एक समारोह से नहीं बुलाया जा सकता।

उन्नत अंतर

  • एक प्रक्रिया में प्रयास-पकड़ने वाले ब्लॉकों द्वारा अपवादों का संचालन किया जा सकता है, जबकि फ़ंक्शन में एक प्रयास-पकड़ ब्लॉक का उपयोग नहीं किया जा सकता है।
  • हम एक प्रक्रिया में लेनदेन प्रबंधन के लिए जा सकते हैं, जबकि एक फ़ंक्शन में हम ऐसा नहीं कर सकते।

एसक्यूएल में:

  • एक प्रक्रिया में SELECT और साथ ही डीएमएल ( INSERT , UPDATE , DELETE ) स्टेटमेंट की अनुमति देता है, जबकि फ़ंक्शन में केवल SELECT कथन ही अनुमति देता है।
  • प्रक्रियाओं का SELECT कथन में उपयोग नहीं किया जा सकता है, जबकि कार्य एक SELECT कथन में एम्बेड किया जा सकता है।
  • संग्रहित प्रक्रियाओं को WHERE में कहीं भी एसक्यूएल कथन में इस्तेमाल नहीं किया जा सकता (या एक या एक SELECT ) ब्लॉक, जबकि कार्य कर सकते हैं
  • फ़ंक्शन को लौटने वाली फ़ंक्शंस को दूसरे रोव्सेट के रूप में माना जा सकता है इसे अन्य तालिकाओं के साथ एक JOIN ब्लॉक में उपयोग किया जा सकता है
  • इनलाइन फ़ंक्शंस को ऐसे विचारों के रूप में माना जा सकता है जो मानदंड लेते हैं और इसका इस्तेमाल JOIN ब्लॉक और अन्य रोव्सेट परिचालन में किया जा सकता है।

अधिकांश संदर्भों में: एक फ़ंक्शन एक मान देता है, जबकि कोई प्रक्रिया नहीं होती है। दोनों एक ही बात करने के लिए एक साथ समूहबद्ध कोड के टुकड़े हैं

कार्यात्मक प्रोग्रामिंग संदर्भ में (जहां सभी फ़ंक्शन रिटर्न मान), फ़ंक्शन एक सार वस्तु है:

 f(x)=(1+x) g(x)=.5*(2+x/2) 

यहाँ, च जी के समान कार्य है, लेकिन एक अलग प्रक्रिया है।

अगर हम यहां भाषा-अज्ञेयवादी हैं, तो प्रक्रिया आमतौर पर कुछ परिणाम प्राप्त करने के लिए जरूरी कृत्यों की एक श्रृंखला को निर्दिष्ट करती है जो मज़बूती से और अयोग्यता से प्राप्त होती है। यही है, एक प्रक्रिया मूल रूप से एक एल्गोरिथ्म है

दूसरी तरफ, कार्य, एक बड़े कार्यक्रम के भीतर कोड का कुछ हद तक स्वतंत्र टुकड़ा है। दूसरे शब्दों में, कार्य एक प्रक्रिया का कार्यान्वयन है

फ़ंक्शन एक मान देता है और एक प्रक्रिया सिर्फ आज्ञाओं को कार्यान्वित करती है

नाम समारोह गणित से आता है। यह इनपुट के आधार पर एक मूल्य की गणना करने के लिए उपयोग किया जाता है।

एक प्रक्रिया आदेश का एक सेट है जिसे क्रम में निष्पादित किया जा सकता है।

अधिकांश प्रोग्रामिंग भाषाओं में, यहां तक ​​कि कार्यों में आदेशों का एक सेट हो सकता है इसलिए फर्क सिर्फ एक मूल्य भाग लौटने में है।

लेकिन अगर आप एक समारोह को साफ रखना चाहते हैं, (केवल फ़ंक्शनल भाषाएं देखें), तो आपको यह सुनिश्चित करने की आवश्यकता है कि फ़ंक्शन का कोई दुष्प्रभाव नहीं है।

फ़ंक्शन को एक एसक्यूएल स्टेटमेंट के भीतर इस्तेमाल किया जा सकता है, जबकि एक एसक्यूएल स्टेटमेंट के भीतर प्रक्रिया का उपयोग नहीं किया जा सकता है।

सम्मिलित करें, अपडेट करें और बयान बनाएँ, फ़ंक्शन में शामिल नहीं किया जा सकता है, लेकिन एक प्रक्रिया इन बयानों का हो सकता है।

प्रक्रिया लेनदेन का समर्थन करती है लेकिन फ़ंक्शन लेनदेन का समर्थन नहीं करती।

फ़ंक्शन को एक और केवल एक मान वापस करना पड़ता है (दूसरा एक OUT वेरिएबल द्वारा वापस किया जा सकता है), लेकिन प्रक्रिया के रूप में कई डेटा सेट और रिटर्न मान रिटर्न

दोनों फ़ंक्शंस और प्रक्रियाओं की निष्पादन योजनाएं कैश्ड हैं, इसलिए प्रदर्शन दोनों मामलों में समान है

मैं इनमें से अधिकतर उत्तरों में अधिक से अधिक देख रहा हूं, जो कि किसी फ़ंक्शन को फ़ंक्शन बनाता है, वह यह है कि यह एक मान देता है

एक फ़ंक्शन सिर्फ एक पुरानी विधि नहीं है, जो एक मूल्य देता है। ऐसा नहीं है: एक वास्तविक कार्य होने के लिए एक विधि के लिए इसे हमेशा एक विशिष्ट मूल्य दिया जाने वाला समान मान वापस करना होगा। एक विधि का एक उदाहरण जो किसी फ़ंक्शन नहीं है, वह अधिकांश भाषाओं में random पद्धति है, क्योंकि हालांकि यह एक मान वापस करता है, मान हमेशा समान नहीं होता है।

एक फ़ंक्शन इसलिए नक्शे के समान है (उदाहरण के लिए जहां x -> x' एक आयामी फ़ंक्शन के लिए)। यह नियमित तरीकों और कार्यों के बीच एक बहुत महत्वपूर्ण अंतर है क्योंकि वास्तविक कार्यों के साथ व्यवहार करते समय और मूल्यांकन जिसमें वे मूल्यांकन किए जाते हैं, उन्हें कभी भी फर्क नहीं होना चाहिए क्योंकि यह हमेशा गैर कार्यों के साथ नहीं होता है

यहाँ एक विधि का एक और उदाहरण है जो फ़ंक्शन नहीं है लेकिन अन्यथा कोई मान वापस लौटाएगा।

 // The following is pseudo code: g(x) = { if (morning()) { g = 2 * x; } else { g = x; } return g; } 

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

 // We can immediately translate this definition into a recursive procedure // for computing Fibonacci numbers: (define (fib n) (cond ((= n 0) 0) ((= n 1) 1) (else (+ (fib (- n 1)) (fib (- n 2)))))) 

क्या आपने हाल ही में पुनरावर्ती प्रक्रियाओं के बारे में सुना है? वे एक पुनरावर्ती समारोह (एक वास्तविक कार्य) के बारे में बात कर रहे हैं और यह एक मूल्य वापस कर रहा है और वे शब्द "प्रक्रिया" का उपयोग कर रहे हैं तो फिर क्या अंतर है?

एक समारोह (ऊपर उल्लेखित अर्थ के अलावा) के बारे में सोचने का एक और तरीका एक अंक की तरह एक आदर्श का एक सार प्रतिनिधित्व है। एक प्रक्रिया यह है कि उस चीज़ के वास्तविक क्रियान्वयन। मैं व्यक्तिगत रूप से सोचता हूं कि वे विनिमेय हैं

(ध्यान दें, यदि आप लिंक से उपलब्ध कराए गए अध्याय को पढ़ते हैं तो आपको पता लग सकता है कि एक कठिन अवधारणा को फ़ंक्शन और प्रक्रिया में अंतर नहीं है, बल्कि एक प्रक्रिया और एक प्रक्रिया है। क्या आपको पता है कि एक रिकर्सिव प्रक्रिया हो सकती है पुनरावृति कार्य?)

प्रक्रियाओं के लिए एक एनालॉग व्यंजन हैं। उदाहरण के लिए; मान लीजिए कि आपके पास make-pies नामक एक मशीन है जो इस मशीन (fruit, milk, flower, eggs, sugar, heat) सामग्री में लेती है और यह मशीन pie देता है।

इस मशीन का एक प्रतिनिधित्व ऐसा दिख सकता है

 make-pies (fruit, milk, flower, eggs, sugar, heat) = { return (heat (add fruit (mix eggs flower milk))) } 

बेशक यह पाई बनाने का एकमात्र तरीका नहीं है।

इस मामले में हम यह देख सकते हैं कि:

 A function is to a machine as a procedure is to a recipe as attributes are to ingredients as output is to product 

यह समानता ठीक है, लेकिन जब आप ध्यान में रखते हैं कि जब आप कंप्यूटर प्रोग्राम से काम कर रहे हैं तो सब कुछ टूट जाता है। तो किसी मशीन के नुस्खा के मामले में विपरीत हम दो चीजों की तुलना कर रहे हैं जो खुद को पृथक कर रहे हैं; दो चीजें जो एक ही बात हो सकती हैं और मुझे लगता है कि वे (सभी इरादों और उद्देश्यों के लिए) एक ही चीज़ हैं

डीबी के संदर्भ में: संग्रहीत कार्यविधि का निष्पादन योजना precompiled है जहां कार्य नहीं हैं।

सी # / जावा के संदर्भ में, फ़ंक्शन कोड का ब्लॉक होता है, जो विशेष मान देता है, लेकिन प्रक्रिया कोड का ब्लॉक है जो शून्य (कुछ भी नहीं) वापस करता है। सी # / जावा में दोनों फ़ंक्शंस और प्रक्रियाएं अक्सर अधिक विधियों के लिए बुलाती हैं

  //This is a function public DateTime GetCurrentDate() { return DateTime.Now.Date; } //This is a procedure(always return void) public void LogMessage() { Console.WriteLine("Just an example message."); } 

प्रक्रियाएं: 1.प्रक्रियाएं बयान का संकलन है जो पैरामीटरबद्ध कंप्यूटेशन को परिभाषित करती हैं। 2.Procedures मूल्यों वापस नहीं कर सकते

3.प्रक्रियाएं फ़ंक्शन से नहीं की जा सकतीं।

कार्य 1. कार्यप्रणाली संरचनात्मक रूप से प्रक्रियाओं के समान होती है लेकिन गणितीय कार्यों पर समय-समय पर मॉडलिंग की जाती है। 2.यह मूल्यों को वापस लौटा सकता है। कार्यप्रणाली प्रक्रियाओं से कहा जा सकता है।

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