Pergunta

Existe uma maneira de fazer usos aplicativos de <$> e <*> fica bem ao lidar com operadores infixos?eu penso isso

((++) <$> a <*> ((++) <$> b <*> c ))

parece muito mais confuso então

a ++ b ++ c

então eu me pergunto se existe uma maneira melhor.

Foi útil?

Solução

(<++>) = liftA2 (++)
a <++> b <++> c

ou

liftA2 (++) a $ liftA2 (++) b c

Outras dicas

Veja Thomas Davie InfixAplicativo pacote, que fornece um truque sintático geral, em vez de ter que definir um novo operador para cada levantamento.

ELA permite que você escreva

(|a ++ (|b ++ c|)|)

se isso for útil.É claro que há alguma sobrecarga na introdução de uma camada de pré-processamento.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top