Alias di una funzioneC'è un modo per aliasare veramente una funzione e non solo per crearne una copia?
Names default to here(1);
f = function({x, y},
print(x);
);
// I'm assuming this just copies it.
alias_f = nameexpr(f);
alias_f(14, 28);Ri: Alias di una funzioneSono abbastanza sicuro del codice interno generato da funzione (...) la funzione viene clonata se esiste una seconda variabile per la stessa funzione.
A seconda del motivo per cui hai bisogno di un alias, considera
a = b = Function( {c}, Show( c ) );Ecco un modo per sbirciare dietro l'angolo e vedere che probabilmente c'è un clone:
a = b = Function( {c}, Show(asconstant (c) ) );
a(42);//42
b(43);//43
a(44);//42
b(45);//43Cosa stai cercando di realizzare? Gli spazi dei nomi possono essere passati senza clonare il loro contenuto (e il contenuto può essere definizioni di funzione). Se la funzione è enorme e la clonazione richiede un notevole lasso di tempo, un piccolo wrapper con il nome alias potrebbe essere appropriato. Se è correlato a ParallelAssign, ha davvero bisogno del clone per motivi interni, simile all'esempio asConstant.
Ri: Alias di una funzioneinteressante.
Per più contesto. Sto cercando di creare una nuova funzione personalizzata con un altro nome a causa di un refactor.
cercando di girare
MyNCF: crappy_function_name
per
MyNCF: better_function_name
senza rompere i vecchi script.
Mi piace l'idea di avvolgere.
Non ho mai usato As Constant come prima. È fantastico.
Penso che questo sia più che sufficiente per giocare. Molto apprezzato.