Existe-t-il un moyen d'utiliser la méthode findIndex de Data.Set avec la plateforme Haskell actuelle ?
-
21-12-2019 - |
Question
J'ai récemment commencé à travailler sur du code qui nécessitait l'utilisation d'ensembles.Je suis donc allé sur Hoogle et j'ai cherché une solution existante, que j'ai trouvée dans le module Base de données.Malheureusement, Hoogle a trouvé la documentation du Set inclus dans le package containers-0.5.3.1.Cette version contenait la méthode pratique findIndex, autour de laquelle j'ai planifié mon programme.
Mais la plateforme Haskell n'est livrée qu'avec containers-0.5.0.0, dans lesquels findIndex n'est pas disponible.Comme je ne peux utiliser que les bibliothèques fournies avec la plateforme Haskell, je cherche un moyen d'inclure cette fonction ou de la définir moi-même.Copier directement le code source des méthodes à partir de http://hackage.haskell.org/package/containers-0.5.3.1/docs/src/Data-Set.html cela n'a évidemment pas fonctionné.J'espère que vous pourrez m'aider à trouver une solution à mon problème.
Merci beaucoup.
La solution
Vous pouvez le faire avec splitMember
:
lookupIndex :: (Ord a) => a -> Set a -> Maybe Int
lookupIndex x s
| found = Just $ size l
| otherwise = Nothing
where (l, found, _) = splitMember x s