içinde değişken sayıda bağımsız değişkene sahip bir işlev yazmak için C# içinde bir işlevim var ve bunu yapmak için (diğer bazı şeyler arasında) F # 'ye aktarmak istiyorum. Ne yazık ki, ben sadece F # Bu ifade için bir yol var gibi görünüyor kendisi için dava çarptı: Ben bu çok kolay olurdu düşünmüştü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;
}
bu C# işlevi alın, ama ben anlamıyorum F # değişken değişken listesi belirtir. Bunu denedim:
let rec Min l =
match l with
| [] -> 0 // should throw exception here
| [v] -> v
| (h::t) -> min h (Min t)
ancak C# o çağıran bir Microsoft.FSharp.Collections.List
bekliyor. Bir params T[]
beklemek mümkün mü ve eğer öyleyse, nasıl?
Değeri ne olursa olsun, işlevinizi şu şekilde yeniden yazmanızı öneririm: min l = Seq.reduce min l – Juliet
Evet, hemen gördüm, şu anda Seq yöntemlerinden geçiyordum (ilk isabet katlandı, ancak azaltın Tam olarak ne arıyorum) – Anteru