मैं एक समारोह, कि एक पूर्णांक और एक त्रिक लेता है और दिए गए स्थान (हिक्की की किताब से व्यायाम 5.3) में त्रिक का एक तत्व देता है लिखने के लिए कोशिश कर रहा हूँ में अप्रत्याशित प्रकार मेल नहीं खाता। ट्रिपलेट को विभिन्न प्रकार के तत्वों को शामिल करने में सक्षम होना चाहिए।OCaml tuples
मैंने सोचा, कि अगर मैं 3 छोटे कार्यों को लिखता हूं, तो प्रत्येक ट्रिपल का एक विशिष्ट तत्व लौटाता है और मेरा बड़ा फ़ंक्शन तदनुसार उनमें से एक को वापस कर देता है, तो यह चाल करेगा, लेकिन यह काम नहीं करेगा।
मैं इस "ईटा-विस्तार" की अवधारणा के साथ बेला के की कोशिश की है, लेकिन मैं इसे नहीं मिला।
let nth1 (a, _, _) = a
let nth2 (_, b, _) = b
let nth3 (_, _, c) = c
let nth i = match i with
| 1 -> nth1
| 2 -> nth2
| _ -> nth3
let main = printf "%d\n" (nth 1 ("hello", 2, 'c'))
तो इसे यहां "2" लिखना चाहिए। कोई सलाह?
संपादन क्योंकि यह वास्तव में मूल्य प्रतिबंध नहीं है, यह इस तरह के पाठकों को भ्रमित करेंगे बुला। –