Usando uma função polimórfica para extrair um objeto de Opções
A documentação disforme explica como usar funções polimórficas para criar uma função que mapeia objetos de um tipo de contêiner para outro, mas e quando você deseja descompactar as coisas do contêiner?
Eu tenho uma lista de opções
val options = Some(1) :: Some("A") :: Some(3.5) :: HNil
Eu quero uma função polimórfica que pode extrair o conteúdo de cada uma das opções.
// This is incorrect:
object uuu extends (Option ~> Any) {
def apply[T](l:Option[T]):T = {
l.get
}
}
Se essa função estivesse correta, eu desejaria o seguinte comportamento:
options.map(uuu) // I want: 1 :: "A" :: 3.5 :: HNil
Como posso corrigir isso para que minha função polimórfica realmente funcione?