2011-01-12 11 views
9

F#入力リスト(e..g list of int)の型注釈は何ですか?F#リストの注釈タイプ

LET広場(X:整数)次のように私は注釈を行うことができます簡単な関数で= ...

私はint型としてXを注釈を付けました。しかし、もし私がint型の型アノテーションをしたいのであれば?たとえば、リストを必要とするmax関数があるとします。どのようにタイプアノテーションを行うのですか?

LET最大(番号:??)= ...

答えて

22

は、2つのオプションがあります。

let max (numbers:int list) = ... 
let max (numbers:list<int>) = ... 

最初のバージョンはOCamlでから継承された(そしてしばしば原始のF#のために使用されている構文を使用していますリストなどのタイプ)。 2番目のバージョンでは.NET構文を使用しています(.NETタイプやF#でオブジェクト指向のコードを書くときに頻繁に使用されます)。しかし、どちらもまったく同じことを意味します。

いずれの場合でも、型注釈の形式は常に(<something> : <type>)です。ここで、<something>はパターン(パラメータリストのように)または式のいずれかです。つまり、int listlist<int>は型の名前に過ぎません。あなたには、いくつかの値を入力する場合は、タイプ名が書かれている方法についての詳細を学ぶためにこれを使用することができますので、F#Interactiveが、種類を印刷します

> [1;2;3] 
val it : int list = [ 1; 2; 3 ] 
+0

はそんなに、あなたはあまりにも(ジョンスキートで)書いた本のおかげでいただきありがとうございます。私は数ヶ月間オン/オフで作業してきました。 – t3rse