Vous J'ai déjà posé plusieurs questions de base sur le traitement de la liste. Je vous recommande donc de lire d'abord quelques introductions et de l'essayer vous-même.
L'utilisation des fonctions intégrées est la bonne façon de résoudre le problème dans la pratique. Si vous voulez apprendre F # et comprendre la récursivité, lisez d'abord ce qui précède. Ensuite, vous devriez être en mesure d'écrire quelque chose comme:
let rec duplicates z = function
// If the list is empty, return empty list of duplicates
| [] -> []
// If it starts with 'z' then return one duplicate and recursively process the rest
| x::xs when x = z -> x::(duplicates x xs)
// If it starts with something else, then skip the first element and process the rest
| x::xs -> duplicates z xs
Il y a beaucoup d'introductions F # qui expliquent comment filter
et des fonctions similaires sont mises en œuvre. Le F# wikibook covers this topic et vous le trouverez dans la plupart des livres F # (voir a list on fsharp.org) et la section Working lists sur www.tryfsharp.org couvre également cela.
Est-ce un devoir? Qu'avez-vous essayé jusqu'à présent? – bytebuster
@bytebuster J'ai fait la fonction dans la question, ce n'est pas un devoir J'essaie de comprendre comment fonctionne la fonction intégrée et j'ai besoin d'un bon exemple pour celle-ci – user1838768
Etes-vous conscient que toutes les bibliothèques du compilateur F # sont open source et sur github à https://github.com/fsharp/fsharp –