OCaml 3.12.1 में, List.map
लिखा है:ओकैम की सूची.मैप में क्यों चल रहा है? इस प्रकार
let rec map f = function
[] -> []
| a::l -> let r = f a in r :: map f l
मैं उम्मीद थी कि अंतिम पंक्ति | a::l -> f a :: map f l
के रूप में लिखा, लेकिन इसके बजाय, वहाँ एक उचित रूप में बेकार let
बाध्यकारी है। क्यूं कर?
दरअसल, ओकैम I के प्रत्येक संस्करण (4.00.1 तक) ने निम्न व्यवहार दिखाया: 'मैप' को परिभाषित करें 'रिक री मैप करें f = function [] -> [] | x :: xs -> f x :: map f xs ;; 'और फिर' map print_string ["a" को कॉल करें; "बी"; "सी"] ;; '। यह सूची-तत्वों को दाएं से बाएं से प्रिंट करता है। – chris
List.map में ऑर्डर निर्दिष्ट करने की आवश्यकता क्यों है? मुझे लगता है कि पहले से या बाद में 'एफ ए' का मूल्यांकन किया जा रहा है, है ना? –