私は F# で練習しており、F# の型制約付き比較関数を実装しています。C#では、これによって実装されています
// in C#
static int cmp<T>(T x, T y) where T: System.IComparable<T>
{
return x.CompareTo(y);
}
ただし、F# では、私が思いついた最良の方法はこれです。
(* in F# *)
let cmp (x: 'a when 'a :> 'a System.IComparable) (y: 'a when 'a :> 'a System.IComparable)
= x.CompareTo(y)
以下の方法で試しましたが、うまくいきませんでした
let cmp (x: 'a) (y: 'a) when 'a :> 'a System.IComparable
= x.CompareTo(y)
私の作業中の F# サンプルは最短の方法ですか、それとも別の方法がありますか?