Aliasing una función¿Hay alguna manera de alias verdaderamente una función y no solo crear una copia de ella?
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);Re: Aliasing una funciónEstoy bastante seguro de que el código interno generado por el función (...) la función se clona si hay una segunda variable para la misma función.
Dependiendo de por qué necesita un alias, considere
a = b = Function( {c}, Show( c ) );Aquí hay una manera de mirar a la vuelta de la esquina y ver que probablemente haya un clon:
a = b = Function( {c}, Show(asconstant (c) ) );
a(42);//42
b(43);//43
a(44);//42
b(45);//43¿Qué está tratando de lograr? Los espacios de nombres pueden pasarse sin clonar su contenido (y el contenido puede ser definiciones de funciones). Si la función es enorme y la clonación lleva una cantidad de tiempo notable, un pequeño contenedor con el nombre de alias podría ser apropiado. Si está relacionado con ParallelAssign, realmente necesita el clon por razones internas, similar al ejemplo asConstant.
Re: Aliasing una funcióninteresante.
Para más contexto. Estoy tratando de alias una nueva función personalizada a otro nombre debido a un refactor.
tratando de girar
MyNCF: crappy_function_name
a
MyNCF: nombre_función_mejor
sin romper viejos guiones.
Me gusta la idea de envolver.
No he usado como constante antes. Eso es super genial.
Creo que esto es más que suficiente para jugar. Muy apreciado.