Я очень новичок в F#. Я написал функцию, которая возвращает массив индексов совпадений подстрок в цели, и она похожа на то, как я пишу на C#.
Есть ли более функциональный способ решения этой проблемы, и можно ли ее решить без использования каких-либо изменяемых переменных?
let SubStringIndices (haystack:string) (needle:string) =
let mutable indices = System.Collections.Generic.List<int>()
let mutable index = haystack.IndexOf(needle)
while index >= 0 do
indices.Add(index)
index <- haystack.IndexOf(needle, index+1)
indices.ToArray()
printfn "%A" (SubStringIndices "abaabababaaab" "ab")
// prints [|0; 3; 5; 7; 11|]
Я не ищу решение, которое проверяет соответствие подстроки по каждому индексу.
indices
изменяемым. Этот тип коллекции является изменяемым сам по себе. Объявляяindices
mutable, вы создаете изменяемую ссылку на изменяемую коллекцию. - person wmeyer   schedule 02.03.2011