Disclaimer: ho giocato con Go solo per un giorno, quindi c'è una buona possibilità che mi sia perso molto.
Qualcuno sa perché non esiste un vero supporto per generics / template / whatsInAName in Go? Quindi esiste un generico map
, ma viene fornito dal compilatore, mentre un programmatore Go non può scrivere la propria implementazione. Con tutto il discorso su come rendere Go il più ortogonale possibile, perché posso USARE un tipo generico ma non CREARE uno nuovo?
Soprattutto quando si tratta di programmazione funzionale, ci sono lambda, anche chiusure, ma con un sistema di tipo statico privo di generici, come faccio a scrivere, bene, funzioni generiche di ordine superiore come filter(predicate, list)
? OK, le liste collegate e simili possono essere fatte interface{}
sacrificando la sicurezza del tipo.
Poiché una rapida ricerca su SO / Google non ha rivelato alcun approfondimento, sembra che i generici, se non del tutto, verranno aggiunti a Go come ripensamento. Mi fido di Thompson di fare molto meglio dei ragazzi di Java, ma perché tenere fuori i generici? O sono pianificati e non ancora implementati?
interface{}
sacrifica la sicurezza di tipo statico . Tuttavia, questa è una lamentela alquanto strana da presentare quando si parla di Scheme nel paragrafo successivo, dal momento che Scheme normalmente non ha un controllo statico del tipo.