La nuova funzione personalizzata non viene eliminata quando viene eliminato lo spazio dei nomitest_ns = New Namespace("Test");
add custom functions({
new custom function("Test", "test_function",
function({},
print("hello world!!");
Return(1);
);
);
});
test_ns << Delete Namespace();
custom_functions = get custom functions();
custom_functions = custom_functions[Loc(custom_functions << get namespace, "Test")];
custom_functions << get name;L'eliminazione di uno spazio dei nomi non eliminerà le funzioni personalizzate associate come mostrato sopra.
L'unico modo in cui ho scoperto di rimuovere la funzione personalizzata è utilizzare la funzione "Rimuovi funzioni personalizzate".
C'è un modo per eliminare uno spazio dei nomi e rimuovere tutte le funzioni personalizzate associate?
Ri: La nuova funzione personalizzata non viene eliminata quando viene eliminato lo spazio dei nomiNon credo ci sia un modo integrato per rimuovere uno spazio dei nomi e tutte le sue funzioni personalizzate associate. Tuttavia, è possibile utilizzare qualcosa come la seguente funzione definita dall'utente:
Delete Namespace and Matching Custom Functions = Function({ns}, {i, mask, fs},
fs = Get Custom Functions();
mask = Loc(fs << Get Namespace, ns << Get Name);
If(N Items(mask),
fs = fs[mask];
For(i = 1, i <= N Items(fs), i++,
fs[i] = ((ns << Get Name) || ":" || (fs[i] << Get Name));
);
Remove Custom Functions(fs);
);
ns << Delete Namespace(Force(1));
);
Esaminerò i modi migliori per gestirlo per le versioni future di JMP.