में तर्कों की चरणीय संख्या लेने वाले फ़ंक्शन को कैसे लिखें, मुझे सी # में एक फ़ंक्शन मिला है, और मैं इसे करने के लिए केवल F # पर पोर्ट (कुछ अन्य सामानों के बीच) पोर्ट करना चाहता हूं। दुर्भाग्य से, मैं सिर्फ वहाँ एफ # में यह व्यक्त करने के लिए कोई रास्ता नहीं हो रहा है, जिसके लिए एक मामला मारा: इस सी # समारोहF #
public static T Min<T>(params T[] p) where T : IComparable
{
T m1 = p[0];
foreach (T v in p)
{
m1 = (m1.CompareTo(v) < 0) ? m1 : v;
}
return m1;
}
मैं सोचा था यह बहुत आसान होगा ले लो, लेकिन मैं मैं कैसे समझ में नहीं आता F # में एक चर तर्क तर्क निर्दिष्ट करेगा। मैं इस की कोशिश की है:
let rec Min l =
match l with
| [] -> 0 // should throw exception here
| [v] -> v
| (h::t) -> min h (Min t)
लेकिन यह है कि सी # से फोन कर एक Microsoft.FSharp.Collections.List
की उम्मीद है। क्या यह params T[]
की अपेक्षा करना संभव है, और यदि हां, तो कैसे?
इसके लायक होने के लिए, मैं इस तरह आपके फ़ंक्शन को फिर से लिखने की अनुशंसा करता हूं: न्यूनतम l = Seq.reduce min l – Juliet
हाँ, बस इसे देखा गया है, अभी सेक विधियों के माध्यम से जा रहा है (पहली हिट गुना था, लेकिन कम वही है जो मैं ढूंढ रहा हूं) – Anteru