tuples का उपयोग के रूप में इस तरह मापदंडों OCaml में आम नहीं है धन्यवाद। आम तौर पर आप currying का उपयोग करें और इस तरह से अपने कार्य निर्धारित करना होगा:
let get_nth list n = ...
यह हस्ताक्षर 'a list -> int -> 'a
होगा। यह भी ध्यान रखें कि आपके पास 'a
पैरामीटर है, जिसका अर्थ है कि, आपके फ़ंक्शन को अकेले इनट्स पर सीमित करने का कोई वास्तविक कारण नहीं है।
अब समस्या को देखें। यदि आप ज़ीरोथ तत्व प्राप्त करना चाहते हैं, तो आपका फ़ंक्शन कैसा दिखता है?
let get_nth list 0 = List.head list (* this is not actually valid in OCaml *)
अब अगर आप एक (नायब n> मी) मीटर आइटम की सूची से n वें तत्व प्राप्त करने के लिए एक समारोह है, आप कैसे है कि समारोह इस्तेमाल कर सकते हैं एक और समारोह जो n + एक से 1 तत्व है मिल के निर्माण के लिए एम + 1 तत्वों की सूची? n + 1 तत्वों के लिए कि समारोह get_nth'
let get_nth' list n' = get_nth (List.tail list) (n'-1)
अब तुम सब करने की जरूरत है दो गठबंधन करने के लिए है और आपका काम हो गया हो। मैं उस अंतिम भाग को आपके पास छोड़ दूंगा।
यदि आप इस सलाह का पालन करते हैं तो आपको ऐसा कुछ मिलता है जो उससे अधिक जटिल है। हालांकि यह समझना आसान है कि इस तरह क्या हो रहा है।
यह वास्तव में होमवर्क समस्या की तरह लगता है। इससे मदद मिलेगी यदि आपने कुछ कोड दिखाया है जो आपने कोशिश की है जो आपको उम्मीद के अनुसार काम नहीं करता है। –