stavo giocando intorno con una semplice funzione per qualcun altro di domanda Stack Overflow, e ho scritto l'espressione (con applicativo ((>) t), forse?):Rimozione di duplicazione -
f a x ++ f a y
Ovviamente questo è il il modo migliore per scrivere quell'espressione nella vita reale, dato che ho tutte quelle variabili in ogni caso, ma ho visto la duplicazione di f a
e ho pensato "Ehi, forse puoi rimuoverlo con l'istanza Applicativa per le funzioni". Ho finito con:
liftA2 (++) (flip f x) (flip f y) a
che è semplicemente orribile. C'è un modo più carino per rimuovere questa duplicazione? Ovviamente potrei anche rimuovere la duplicazione legando f a
a qualcosa in una clausola where
, ma questo era inteso come un esercizio nell'uso di funzioni built-in.
Mi piace questa risposta, anche se! Immagino che non stavo veramente cercando le risposte Applicative in modo specifico, tanto quanto usare la libreria standard per rimuovere la duplicazione. – amalloy