8

कई कार्यात्मक प्रोग्रामिंग भाषाओं में curried parameters के लिए समर्थन है। करीकरण कार्यों का समर्थन करने के लिए फ़ंक्शन के पैरामीटर अनिवार्य रूप से एक टुपल हैं जहां अंतिम पैरामीटर को एक नया फ़ंक्शन बनाने के लिए छोड़ा जा सकता है जिससे छोटे टुपल की आवश्यकता होती है।क्या कोई प्रोग्रामिंग भाषा है जो नाम पैरामीटर छोड़े जाने पर करीनी होती है?

मैं ऐसी भाषा तैयार करने की सोच रहा हूं जो फ़ंक्शन पैरामीटर के लिए हमेशा रिकॉर्ड (उर्फ named parameters) का उपयोग करता है।

मेरे मेकअप में इस प्रकार सरल गणित कार्यों का मानना ​​है कि भाषा होगा:

add { left : num, right : num } = ... 
minus { left : num, right : num } = .. 

आप इतने लंबे समय वे उन दो नामित पैरामीटर के रूप में उन कार्यों के लिए किसी भी रिकॉर्ड में पारित कर सकते हैं (वे कर सकते हैं और अधिक सिर्फ "छोड़" और "दाएं")।

अगर वे नामित पैरामीटर का केवल एक ही है, जैसे कोई नया कार्य बनाता है:

minus5 :: { left : num } -> num 
minus5 = minus { right : 5 } 

मैं ऊपर के लिए Haskell के संकेतन के कुछ उधार ले।

क्या किसी ने कोई ऐसी भाषा देखी है जो यह करती है?

+0

@Ken ब्लूम मैं देख सकते हैं कि शब्द "आंशिक उपयोग करते हुए फंक्शन प्राप्ति "संदिग्ध है। मैं वास्तव में "आंशिक अनुप्रयोग" का मतलब था और कुछ प्रकार की संज्ञानात्मक विसंगति थी और उपर्युक्त शब्द का उपयोग किया था। इसे ठीक करने के लिए धन्यवाद। –

उत्तर

4

OCaml मापदंडों का नाम दिया है और currying स्वत: (हालांकि कभी कभी टाइप एनोटेशन की आवश्यकता है जब वैकल्पिक पैरामीटर के साथ काम कर) है, लेकिन वे tupled नहीं हैं:

Objective Caml version 3.11.2 

# let f ~x ~y = x + y;; 
val f : x:int -> y:int -> int = <fun> 
# f ~y:5;; 
- : x:int -> int = <fun> 
# let g = f ~y:5;; 
val g : x:int -> int = <fun> 
# g ~x:3;; 
- : int = 8 
+0

मैंने ओकैमल को लंबे समय तक एक गुच्छा का उपयोग किया है और किसी कारण से मैंने सोचा था कि आप ऐसा नहीं कर सकते लेकिन ऐसा लगता है कि मैं गलत हूं। मुझे आश्चर्य है कि क्या एफ # वही काम कर सकता है? - धन्यवाद –

+0

एफ # नामित पैरामीटर का समर्थन नहीं करता – ygrek

+0

मुझे लगता है कि केवल ऑब्जेक्ट कन्स्ट्रक्टर के लिए आप नामित पैरामीटर का उपयोग कर सकते हैं। सी # 4.0 नामित पैरामीटर का समर्थन करेगा :) –

1

निश्चित रूप से, गणित उस तरह की चीज कर सकता है।

संबंधित मुद्दे