Domanda

C'è un modo per rendere gli usi applicativi del <$> e del <*> sembrano carini quando si tratta di operatori di infissi?Penso che

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

Sembra molto più ingombrante quindi

a ++ b ++ c
.

Quindi mi chiedo se c'è un modo più bello.

È stato utile?

Soluzione

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

o

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

Altri suggerimenti

Vedi Thomas Davie's Infixapplicative pacchetto, che fornisce un trucco sintattico generale, piuttosto che dover definire un nuovo operatore per ciascunoSollevamento.

lei ti consente di scrivere

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

Se è qualsiasi uso.Certo, c'è un po 'di sopraelevato per introdurre uno strato di pre-elaborazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top