let csvList startDelim endDelim lst memF =
let listIter (listStr: string) item =
if listStr.Length > 0 then
listStr + "," + (memF item)
else
memF item
startDelim + (List.fold listIter "" lst) + endDelim
let listIntoJsonArray = csvList "[" "]"
let listIntoJsonObject = csvList "{" "}"
let intConverter (item:int) : string =
item.ToString()
let objectConverter (item:SomeObject) : string =
item.value.ToString()
let objects = [{vaue: 12.3}; {vaule: 33.2}]
let ints = [1;2;4]
let o = listIntoJsonObject objects objectConverter
let i = listIntoJsonObject ints intConverter
Je n'arrive pas à trouver la sauce magique pour rendre la liste csvList ou ses assistants partiellement appliqués listIntoJsonArray ou listIntoJsonObject génériques.Comment rendre ma fonction générique
Merci pour l'aide.
N'a pas semblé faire l'affaire. Juste au moment où je sens que je tiens fermement la langue, cela prend un autre tour. Auront besoin de rechercher les restrictions de valeur plus ... Thx. – akaphenom
@akaphenom: ma solution originale a fait une erreur (j'ai ajouté les paramètres à la définition de la fonction, mais je ne les ai pas passés comme arguments à csvList), cela devrait fonctionner correctement maintenant. F # est une bête sauvage, mais cela rend la domestication tellement plus excitante, et les récompenses tellement plus grandes :) –