私はC#で関数を持っていますが、そのためにF#にそれを移植したいと思っています。残念ながら、私は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;
}
このC#関数を取るが、私は私どのように理解していませんF#で可変引数リストを指定します。私はこれを試してみました:
let rec Min l =
match l with
| [] -> 0 // should throw exception here
| [v] -> v
| (h::t) -> min h (Min t)
が、C#のからそれを呼び出すことがMicrosoft.FSharp.Collections.List
を期待しています。 params T[]
を期待することは可能ですか?もしそうなら、どのように?
私はあなたの関数を次のように書き直すことをお勧めします:let min l = Seq.reduce min l – Juliet
今、Seqメソッドを使っています。ちょうど私が探しているものです – Anteru