Je suis nouveau à F # et je fais un programme qui nécessite de trouver chaque sous-liste de longueur donnée d'une liste. Je n'étais pas sûr de savoir comment s'y prendre alors j'ai lu this question et j'ai décidé de porter la réponse à F #. Voici ce que j'ai:Comment travailler avec des listes mutables en F #?
let rec getSubLists (len : int) (list : List<int>) : List<List<int>> =
let result = new List<List<int>>()
let current = new List<int>()
let rec findSubLists (len : int) (superSet : List<int>) (current : List<int>) (soln : List<List<int>>) (idx : int) : unit =
if current.Length = len then soln.Insert(len - 1, current)
elif idx = superSet.Length then
let x = superSet.[idx]
current.Insert(len, x)
findSubLists len superSet current soln (idx + 1)
current.RemoveAt(x)
findSubLists len superSet current soln (idx + 1)
else()
findSubLists len list current result 0
result
Le compilateur est bouleversé quelques choses: il dit qu'il n'y a pas de constructeur pour List<int>
, List<List<int>>
, et il est dit que Insert
et RemoveAt
ne sont pas définis. J'ai trouvé ces méthodes dans le microsoft docs. This tutorial mentionne RemoveAt
, mais il utilise Add
au lieu de Insert
, qui ne fonctionnait pas non plus.