文字列内の指定された位置にFPメソッドで文字を取得するにはどうすればよいですか(つまり、汚れていない.[index]
ハック)?文字列内の指定された位置にcharを取得する
Seq.item
を使用すると、すべてのインデックスがn
要素まで繰り返されるため、毎回機能が非常に遅くなるようにします。例怒鳴るで
source
がstring
であれば、それはそれはO(n)
アクセスよ他O(1)
アクセスを、よ。
let getItem index source =
match box source with
| :? string as string -> printfn "String"; string.[index]
| _ -> printfn "Seq<char>"; Seq.item index source
let stringChar3 = getItem 3 "ABCD"
let seqChar3 = getItem 3 [ for c in ['A'..'D'] do yield c ]
val getItem : index:int -> source:seq<char> -> char
val stringChar3 : char = 'D'
val seqChar3 : char = 'D'
どのように '。[index]' 'dirty hack 'を使用していますか?それがO(1)アクセスを取得する方法です。 – Lee
@Leeそれで、関数に明示的な型の注釈を追加する必要があるので、私はその時点ではできません。 – MiP