Existe-t-il un moyen d'utiliser la méthode findIndex de Data.Set avec la plateforme Haskell actuelle ?

StackOverflow https://stackoverflow.com//questions/20031681

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.

Était-ce utile?

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top