Come si è visto here, mappa è definitoEsiste un tutorial completo su come utilizzare questo tipo di tipizzazione strutturale?
in un modo un po 'funky
Per completezza, ecco il codice:
implicit def FunctionFunctor[R] = new Functor[({type l[a] = R=>a})#l] {
def map[A, B](fa: R => A)(f: A => B) : R => B = (x => f(fa(x)))
}
Più concretamente - new Functor[({type l[a] = R=>a})#l]
Penso di sapere cosa sta succedendo, ma non posso dire onestamente che capisco perfettamente t lui concetto. E poiché non vi è alcun suggerimento, non posso chiamare Google il termine (semplicemente non lo so per google). Esiste qualche tutorial (o recensione o altro) in cui ciò viene spiegato con un migliore livello di detalizzazione? Apprezzerei ancora di più qualcuno potrebbe spiegarlo proprio qui nelle risposte.
wow, è così semplice? : D – tkroman
In effetti, sembra troppo complicato. Ecco perché di solito creo un alias di tipo o anche un tratto o una classe per evitare di usare quella sintassi orribile. – EECOLOR
@cdshines Ho aggiunto un esempio del codice che hai postato usando un alias di tipo. – EECOLOR