このブログの中を検索する

2012/06/19

F#でジェネリック関数を簡単に定義する

title: F#でジェネリック関数を簡単に定義する
url: http://www.atmarkit.co.jp/fdotnet/special/introfs_01/introfs_01_01.html

snippet:
-----引用-----

F#はこの「状態を持たない」方向に傾けたプログラムを書くためのサポートが手厚く、逆に「状態を持った」方向に傾けたプログラムを書くのが面倒になるように文法が構築されている。


F#は、ジェネリック関数も簡単に定義できる。例えば、

let gt x y = x < y
↑ジェネリック関数の定義例(F#)

とするだけで、C#での、

public static bool Gt<T>(T x, T y) where T : IComparable<T>
{
  return x.CompareTo(y) < 0;
}
↑ジェネリック関数の定義例(C#)

と同じようなものが定義できる。gt関数の型を推論するときに、比較演算子がジェネリックな演算子として定義されているため、gt関数の型も比較演算子同様、ジェネリックと判断されたのだ。

-----引用-----

0 件のコメント:

コメントを投稿