Aliasing einer FunktionGibt es eine Möglichkeit, eine Funktion wirklich zu aliasen und nicht nur eine Kopie davon zu erstellen?
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);Betreff: Aliasing einer FunktionIch bin mir ziemlich sicher, dass der interne Code von der Funktion (...) Funktion wird geklont, wenn es eine zweite Variable für dieselbe Funktion gibt.
Überlegen Sie, warum Sie einen Alias benötigen
a = b = Function( {c}, Show( c ) );Hier ist eine Möglichkeit, um die Ecke zu schauen und zu sehen, dass es wahrscheinlich einen Klon gibt:
a = b = Function( {c}, Show(asconstant (c) ) );
a(42);//42
b(43);//43
a(44);//42
b(45);//43Was versuchst du zu erreichen? Namespaces können ohne Klonen ihres Inhalts weitergegeben werden (und der Inhalt kann Funktionsdefinitionen sein). Wenn die Funktion sehr umfangreich ist und das Klonen spürbar lange dauert, ist möglicherweise ein winziger Wrapper mit dem Aliasnamen geeignet. Wenn es mit ParallelAssign zusammenhängt, benötigt es den Klon aus internen Gründen wirklich, ähnlich wie im Beispiel asConstant.
Betreff: Aliasing einer Funktioninteressant.
Für mehr Kontext. Ich versuche, eine neue benutzerdefinierte Funktion aufgrund eines Refaktors mit einem anderen Namen zu versehen.
versuchen sich umzudrehen
MyNCF: crappy_function_name
zu
MyNCF: besserer_Funktionsname
ohne alte Skripte zu brechen.
Ich mag die Idee des Wickelns.
Habe noch nie als Konstante verwendet. Das ist super cool.
Ich denke, das ist mehr als genug für mich, um damit zu spielen. Sehr geschätzt.