Existe uma maneira de usar o findIndex método de Dados.Conjunto com a atual plataforma haskell?
-
21-12-2019 - |
Pergunta
Comecei a trabalhar recentemente em algum código que é necessário o uso de conjuntos.Então eu fui para Hoogle e procurou uma solução existente, o que eu achei no módulo Dados.Conjunto.Infelizmente, Hoogle ligado a documentação para o Conjunto incluído no contentores-0.5.3.1 pacote.Esta versão continha a prática findIndex método, o que eu planejei meu programa.
Mas a plataforma Haskell só vem com contentores-0.5.0.0, em que findIndex não está disponível.Como eu só pode usar as bibliotecas que vem com a plataforma Haskell, estou a procura de uma forma de incluir essa função, ou definir-me.Em linha reta até a copiar os métodos de código-fonte a partir de http://hackage.haskell.org/package/containers-0.5.3.1/docs/src/Data-Set.html obviamente, não funcionou.Eu espero que você possa me ajudar a encontrar uma solução para o meu problema.
Muito obrigado.
Solução
Você pode fazer isso com splitMember
:
lookupIndex :: (Ord a) => a -> Set a -> Maybe Int
lookupIndex x s
| found = Just $ size l
| otherwise = Nothing
where (l, found, _) = splitMember x s