Qual è l'impatto positivo sull'utilizzo di più metodi? Se ho 2 funzioni con lo stesso nome e lo stesso numero di argomenti che differiscono solo per il tipo (list vs. int), la mia performance subirà molto?Prestazioni multimodali
In altre parole, è preferibile denominare la funzione di aggiunta del vettore: "aggiungi-vettore" o lasciarlo come "aggiungi" o eventualmente "+"?
(Per semplicità ignoriamo i problemi che potrei avere ridefinendo funzioni integrate come "+").
vorrei rispondere al posto del commento, ma in quanto non riguarda clojure in particolare, multimethods non dovrebbe incorrere in alcuna penalità aggiuntiva di ricerche normali. Cioè, una fase di implementazione è quella di manipolare nomi che li codificano con tipi di argomenti, e quindi non ci dovrebbero essere overhead. Tuttavia, la strategia di implementazione utilizzata da Clojure mi è sconosciuta, ma se utilizza il meccanismo sopra descritto, non ci sarà alcun overhead aggiuntivo. – jer
Sì, dal momento che il clojure è un linguaggio dinamico, non penso che sarà lo stesso. Anche il clojure utilizza una funzione di invio che genera chiavi che vengono applicate a un elenco di funzioni disponibili. –
Si potrebbe voler esaminare 'clojure.contrib.generic' e' clojure.contrib.generic. * '(' C.c.generic.arithmetic' sarà probabilmente più interessante per voi). –