Funzione Python e JSLDa Python a JMP: best practice per la conversione delle colonne del dataframe in colonne della datatable e implicazioni sulla velocità di calcolo Ho appena scoperto questa nuova interessante funzione:
import jmp
jmp.globals['pi'] = 3.1415927
jmp.globals['bB'] = 'Bumble Bee'
print( jmp.globals.items() )
per definire variabili nello spazio dei nomi JSL, come una versione push di Python Get()
Ci sono alcune restrizioni. Ad esempio, al momento jmp.globals non riconosce le funzioni JSL:
::f= function({x},x);
x="hello";
y=5;
z={1,2,3};
aa= associative Array({1,2});
Python Submit("
import jmp
print(jmp.globals)");
la risposta:

Forse un problema correlato? :
Tentativo di creare una funzione tramite run_jsl con questo codice JSL:
import jmp
jmp.run_jsl('x="hello";Caption(x)') # OK
jmp.run_jsl('f= function({x},x)') # crash
... porta a un incidente!?!
quando esegui il codice riga per riga, riceverai questo messaggio di errore:

Automazione e scriptingRe: Funzione Python e JSLUn bug. JMP 19?
Sul mio computer ricevo un messaggio di errore diverso, ma sembra che run_jsl() si comporti come se si verificasse un eval(f = function({x},x)) e non solo l'assegnazione.

Sono riuscito a ricreare ciò che vedevo da Python, semplicemente eseguendo da JSL.
Re: Funzione Python e JSLSì, @hogi utilizza JMP 19.0.1. Ha inviato un'e-mail all'assistenza chiedendo se si trattasse di un bug noto.
Re: Funzione Python e JSLStesso problema con JMP19 e JMP19.0.1 (versione Windows).
Con JMP 18 non ci sono problemi.
Interessante che
eval(f = funzione({x},x))
è diverso da
f = funzione({x},x).
Quindi valuta l'argomento prima di valutare il valore di ritorno dell'argomento?
Eval(print(1);Parse("print(2)"));
Significativamente diverso:
- con il codice Python, JMP si blocca sul mio sistema (forse c'è una differenza tra Win e Mac?)
- con eval(f = function({x},x)) JMP mostra un avviso JMP e continua a funzionare:
