Obtendo um valor 'a' do tipo de retorno 'Talvez um' em Haskell
Isso será difícil de explicar, porque há uma quantidade decente de detalhes de plano de fundo sobre o código como um todo que precisa ser conhecido para realmente saber funcionalmente do que estou falando. Mas vou tentar o meu melhor para entender meu ponto principal e espero que seja suficiente. Deixe-me saber se não, e eu adicionarei mais informações. Assim:
Eu tenho uma função Haskelleval :: WExp -> Memory -> WValue
com várias instâncias diferentes para casos diferentes. Por enquanto, o conhecimento sobreWExp
, Memory
eWValue
não é relevante. Meu problema é que, para uma instância específica deeval
Estou usando umlookup
função, que aceita o parâmetroeval
(uma sequência neste caso) pesquisa uma lista de pares de valores-chave para essa sequência. Note que estelookup
função não é a incluída no prelúdio; é auto-definido no arquivo .hs. Se a sequência for encontrada, o valor associado a ela será retornado, mas se não for encontrado,Nothing
é retornado. Por causa doNothing
caso, o tipo delookup
é na verdadeMaybe a
, Ondea
seria umWValue
nesse caso. Porqueeval
retornaria umMaybe WValue
, o compilador obviamente reclama que o tipo não éWValue
.
Novamente, se você precisar de mais informações sobre o que esses outros tipos são, eu posso fornecer. É apenas o meu pensamento que pode haver algum tipo de método geral para extrair oa
valor de qualquer função que retorneMaybe a
. Se não, acho que vou procurar outro lugar para soluções :)