कोर में, List.find
इस प्रकार है, एक सहायक समारोह का उपयोग कर परिभाषित किया गया है:ओकैमल में, कोर की सूची में एक सहायक कार्य क्यों है। ढूँढें?
let find l ~f =
let rec find_aux = function
| [] -> None
| hd :: tl -> if f hd then Some hd else find_aux tl
in
find_aux l
लेकिन यह सीधे परिभाषित किया जा सकता। उदाहरण के लिए:
let rec find l ~f =
match l with
| [] -> None
| hd :: tl -> if f hd then Some hd else find tl f
वहाँ List.find
के रूप में एक समारोह में इस तरह परिभाषित करने के लिए एक सहायक समारोह प्रयोग करने में कोई लाभ है?
हास्केल में इस तरह की चीज करके आपको अतिरिक्त इनलाइनिंग अवसर मिलते हैं, यह एक बड़ा सौदा है। मुझे नहीं पता कि ओकैम एक जैसा है या नहीं। खोज शब्द: स्थिर तर्क परिवर्तन, कार्यकर्ता-रैपर परिवर्तन –