web-dev-qa-db-ja.com

F#、Split Stringおよび.Netメソッド

F#は初めてです。 VS2008シェルとF#インタラクティブを使用しています。 「System.String.Split」を使用して文字列を分割しようとすると、「Split is not a static method」というエラーが表示されます

コード例:

let Count text =
    let words = System.String.Split [' '] text
    let nWords = words.Length
    (nWords)

F#でsplitのようなStringメソッドを使用するにはどうすればよいですか?

42
Neo

それらをインスタンスメソッドとして呼び出します。

_let Count (text : string) =
  let words = text.Split [|' '|]
  let nWords = words.Length
  (nWords)
_

(Splitはリストではなく配列を使用するため、_[| |]_を使用する必要があることに注意してください。または、Joel Muellerのコメントに従って、Splitはparams配列を使用するため、区切り文字を個別の引数として渡すことができます(例:text.Split(' ', '\n')))

53
itowlson

関数String.splitがF#Power Packで定義されました。追加する必要があります

#r "FSharp.PowerPack.dll";; 
#r "FSharp.PowerPack.Compatibility.dll";; 

エキスパートF#のエラッタを参照してください: http://www.expert-fsharp.com/Updates/Expert-FSharp-Errata-Jan-27-2009.pdf

ここでFSharp.PowerPack.dllを取得します: http://fsharppowerpack.codeplex.com/

6
1-2-3