दिलचस्प पोस्ट
Image Base64 में कनवर्ट करें एंड्रॉइड के लिए एक्लिप्स डीबग मोड में SQL डेटाबेस को कैसे देखें जावास्क्रिप्ट: क्लोन ए फ़ंक्शन सम्मिलित करने के लिए इष्टतम तरीका / समस्त स्ट्रिंग कैसे मैं क्वेरी स्ट्रिंग चर mod_rewrite के साथ मैच कर सकते हैं? तुल्यकालिक बनाम एसिंक्रोनस एसिओ ऑपरेशन के बारे में कुछ स्पष्टीकरण की आवश्यकता है निर्धारित करें कि वर्तमान पावरशेफ प्रक्रिया 32-बिट या 64-बिट है? सॉकेट प्रोग्रामिंग के लिए INADDR_ANY को समझना लीब या वैश्विक स्थापना के बिना चींटी में एक वैकल्पिक कार्य कैसे लोड करना है? पायथन में फ्लोट्स के लिए अंतर्निहित पाउ (और) math.pow () के बीच का अंतर है? मैं एक स्विफ्ट अर्रे को स्ट्रिंग में कैसे बदलूं? कम सीएसएस: वैरिएबल संख्याओं के साथ मिक्सिन्स क्या कोई जावास्क्रिप्ट स्टेटिक एनालिसिस टूल हैं? C / C ++ में नल सूचक के लिए जांचना बहुत बढ़िया दृश्य स्टूडियो मैक्रोज़

कार्यात्मक प्रोग्रामिंग में बिंदु मुक्त शैली क्या है?

मैंने हाल ही में देखा है कि एक वाक्यांश "बिंदु मुक्त" शैली की अवधारणा है …

सबसे पहले, यह सवाल था, और यह भी एक था ।

फिर, मैंने यहां पाया कि वे "एक अन्य विषय का उल्लेख करते हैं जो चर्चा करने में लायक हो सकता है लेखकों को 'बिंदु मुक्त शैली की नापसंदता' है।"

"बिंदु मुक्त" शैली क्या है? क्या कोई संक्षिप्त विवरण दे सकता है? क्या यह "स्वत:" करी के साथ कुछ करना है?

मेरे स्तर का एक विचार प्राप्त करने के लिए – मैं खुद को योजना शिक्षण कर रहा हूं, और एक साधारण योजना दुभाषिया लिखा है … मैं समझता हूं कि "निहित" कतरन क्या है, लेकिन मुझे कोई हास्केल या एमएल नहीं पता है

Solutions Collecting From Web of "कार्यात्मक प्रोग्रामिंग में बिंदु मुक्त शैली क्या है?"

अपनी परिभाषा पाने के लिए सिर्फ विकिपीडिया लेख देखें :

टैक्सिट प्रोग्रामिंग (पॉइंट-फ्री प्रोग्रामिंग) एक प्रोग्रामिंग प्रतिमान है जिसमें फ़ंक्शन परिभाषा में इसके तर्कों के बारे में जानकारी शामिल नहीं होती है, जो कि कंबाइनेटर्स और फ़ंक्शन संरचना […] के बजाय वेरिएबल्स का उपयोग करते हैं।

हास्केल उदाहरण:

परम्परागत (आप स्पष्ट रूप से बहस निर्दिष्ट करते हैं):

sum (x:xs) = x + (sum xs) sum [] = 0 

बिंदु-मुक्त ( sum में कोई स्पष्ट तर्क नहीं है – यह सिर्फ एक गुना है + 0 से शुरू होता है):

  sum = foldr (+) 0 

या इससे भी सरल: g(x) = f(x) बजाय, आप बस g = f लिख सकते हैं।

तो हां: यह कतरिंग से संबंधित है (या फ़ंक्शन संरचना की तरह संचालन)

बिंदु-मुक्त शैली का अर्थ है कि परिभाषित समारोह के तर्क स्पष्ट रूप से वर्णित नहीं हैं, यह फ़ंक्शन फ़ंक्शन संरचना के माध्यम से परिभाषित किया गया है।

यदि आपके पास दो फ़ंक्शन हैं, जैसे

 square :: a -> a square x = x*x inc :: a -> a inc x = x+1 

और यदि आप इन दो फ़ंक्शन को एक को x*x+1 जोड़ना चाहते हैं, तो x*x+1 गणना कर सकते हैं, आप इसे "बिन्दु-पूर्ण" इस तरह परिभाषित कर सकते हैं:

 f :: a -> a fx = inc (square x) 

बिंदु-मुक्त विकल्प तर्क के बारे में बात नहीं करेगा x :

 f :: a -> a f = inc . square 

प्वाइंट फ्री स्टाइल का मतलब है कि कोड स्पष्ट रूप से इसके तर्कों का उल्लेख नहीं करता है, हालांकि वे मौजूद हैं और उनका उपयोग किया जा रहा है

हेस्केल में यह काम करता है क्योंकि फ़ंक्शन कार्य करते हैं

उदाहरण के लिए:

 myTake = take 

एक फ़ंक्शन देता है जो एक तर्क लेता है, इसलिए तर्क को स्पष्ट रूप से लिखने के लिए कोई कारण नहीं है, जब तक आप अभी भी नहीं चाहते।

एक जावास्क्रिप्ट नमूना:

 //not pointfree cause we receive args var initials = function(name) { return name.split(' ').map(compose(toUpperCase, head)).join('. '); }; //pointfree var initials = compose(join('. '), map(compose(toUpperCase, head)), split(' ')); initials("hunter stockton thompson"); // 'HS T' 

संदर्भ