Je suis en train de tester le code suivant pour remplir un dictionnaire de manière récursive. Cependant l'inférence de type ne semble pas reconnaître le type de dictionnaire. J'ai essayé d'utiliser une annotation de type mais cela n'a pas semblé aider.Remplir un dictionnaire de manière récursive?
Y at-il des restrictions sur l'utilisation des dictionnaires dans une routine récursive. Ai-je besoin de rendre le dictionnaire modifiable puisque je m'attends à le changer pendant les itérations.
open System
open System.Collections.Generic
////dictionary recursion test
let pop_dict tlist =
// let rec inner tlist acc ddict:Dictionary<string,int> =
let rec inner tlist acc ddict =
match tlist with
| [] -> ddict.Add ("dummykey", acc)
| x::xs -> inner xs (x::acc) ddict
let ddict = Dictionary<string,int>()
inner tlist [] ddict
// Main Entry Point
let main() =
let tlist = [1;2;3;4]
let d = pop_dict tlist
main()
Vous voulez un dictionnaire mutable avec une clé (« dummyKey ») qui contient la liste que vous avez passé dans? Soit dic = Dictionary(); dic.add ("dummykey", [1,2,3,4]) –