Haskell remplace l'élément dans la liste
Est-il intégré dans la fonction de remplacer un élément à un index donné en haskell?
Exemple:
replaceAtIndex(2,"foo",["bar","bar","bar"])
Devrait donner:
["bar", "bar", "foo"]
Je sais que je pourrais faire ma propre fonction, mais il semble que ce devrait être intégré.
source d'informationauteur Stefan Bucur
Vous devez vous connecter pour publier un commentaire.
Si vous devez mettre à jour les éléments d'un index spécifique, les listes ne sont pas de la meilleure structure de données. Vous pouvez envisager d'utiliser
Seq
dede Données.Séquence
au lieu de cela, auquel cas la fonction que vous recherchez estmise à jour :: Int ->- > Suiv a -> Suiv
.Autant que je sache (et trouver), il n'existe pas par défaut. Cependant, il existe
splitAt
dansData.List
donc:C'est O(N). Si vous vous retrouver à faire beaucoup, regardez un autre type de données comme tableau.
Il y a réelle des tableaux, mais les listes sont vraiment seuls les listes chaînées et la notion de remplacement d'un élément n'est pas tout à fait aussi évident (et de l'accès à un élément à un index donné peut indiquer que vous ne devriez pas être à l'aide d'une liste, pour les opérations qui peut l'inciter éviter).