J'ai besoin de générer des permutations sur une liste donnée. J'ai réussi à le faire comme ceciPermutations F #
let rec Permute (final, arr) =
if List.length arr > 0 then
for x in arr do
let n_final = final @ [x]
let rest = arr |> List.filter (fun a -> not (x = a))
Permute (n_final, rest)
else
printfn "%A" final
let DoPermute lst =
Permute ([], lst)
DoPermute lst
Il ya des problèmes évidents avec ce code. Par exemple, les éléments de liste doivent être uniques. Aussi, c'est plus ou moins la même approche que j'utiliserais pour générer une implémentation directe dans n'importe quelle autre langue. Y a-t-il une meilleure façon de l'implémenter en F #?
Merci!
connexes (identique?) Question: http://stackoverflow.com/questions/286427/calculating-permutations-in -F – Benjol