मुझे एक ऐसा प्रोग्राम लिखना है जो आउटपुट में एक ट्यूपल प्रदान करता है: न्यूनतम और अधिकतम रिक्त सूची और अधिकतम मूल्य जो अक्सर दिखाई देता है। विशेष रूप से:न्यूनतम/अधिकतम और सूची का सबसे लगातार तत्व
min_max [1;0;-1;2;0;-4] ==> (-4; 2)
min_max: int list -> (int * int)
mode [-1;2;1;2;5;-1;5;5;2] ==> 2
mode: int list -> int
इस कोड है कि मैं अधिकतम (न्यूनतम लगभग बराबर है), लेकिन के लिए लिखा है कि कैसे मैं आउटपुट के रूप में दो मूल्यों के साथ एक टपल प्राप्त करने के लिए कर सकते हैं?
let rec max_list xs =
match xs with
| [] -> failwith "xs" "Empty list"
| [x] -> x
| x1::x2::xs' -> max_list((max2 x1 x2)::xs');;
एक साइड नोट के रूप में; आपकी 'max_list' इसके उद्देश्य के लिए थोड़ा जटिल लगता है; वर्तमान सूची के साथ वर्तमान अधिकतम के चारों ओर पास करने के लिए आसान हो सकता है और यदि वर्तमान सिर अधिक हो तो इसे अपडेट कर सकता है। या इसे चारों ओर गुजरने के बिना; केवल वर्तमान सिर और पूंछ – Sehnsucht