Estrai EsprSono un grande fan di Eval(Substitute(Expr(...), Expr(..), Expr(.)))

L'unico svantaggio: Expr(...), Expr(..), Expr(.)
... il che mi ha portato all'idea di subst() - replace() 2.0 ... una funzione che non valuta i suoi argomenti.
Mentre giocavo con la gestione delle espressioni, ho notato che la logica desiderata per Subst() è abbastanza simile a quella di Extract Expr(): non è necessario utilizzare Expr() e Name Expr() viene applicato ovunque sia possibile:
Names Default to here(1);
// direct mode, no Expr necessary
Extract Expr(x^2 + y, x);// -> x
Extract Expr(x^2 + y, c);// no c in x^2 + y -> empty
// Name Expr mode
c=Expr(x^2);
Extract Expr(x^2 + y , c);// looks up c = x^2, find "x^2"" in x^2 +y
Meraviglioso!
... fino a:
Extract Expr(cc * d , cc); // -> cc
cc=Expr(x^2);
Extract Expr(cc * d, cc);// looks up cc = x^2 , so doesn't find cc in cc * d anymore
Pericoloso ...
dopo aver definito cc come simbolo con il nome expr , è ancora possibile utilizzare c "letteralmente" in Extract Expr ?
Extract Expr(cc * d , Expr(cc)); // doesn't work
Extract Expr(Expr(cc) , Expr(cc)); // finds Expr(cc)
Extract Expr(cc , Name Expr(Expr(cc))); // -> empty
Extract Expr(Name Expr(Expr(cc)) , Name Expr(Expr(cc))); // finds Name Expr(Expr(cc)), argh!
Anche:
cc=Expr(x^2);
clear symbols(cc);
Extract Expr(cc * d , cc); //-> empty()
Automazione e scriptingRe: Estrai EsprForse:
utilizzare una funzione personalizzata come wrapper per Extract Expr
Names default to here(1);
dummy=Function ({expression, pattern},
Extract Expr(expression, pattern);
);
cc = Expr(x^2);
dummy( Expr(cc+d), Expr(cc)); // -> ccRe: Estrai EsprC'è qualcosa per cui stai cercando risposte? Hai anche letto la Guida allo scripting sulle espressioni Guida allo scripting > Metodi di programmazione > Espressioni avanzate, macro ed elenchi - Espressioni avanzate e in particolare le parti su come vengono valutate?
Re: Estrai ExprNella pagina linkata non ho trovato ulteriori informazioni su ExtractExpr()
@jthi ha scritto:
C'è qualcosa a cui stai cercando delle risposte?
come assicurarsi che JMP cerchi cc nell'espressione cc*d ?
... anche se cc viene utilizzato come nome per un'altra espressione, come x^2.
Extract Expr(cc * d , cc); // -> cc
cc=Expr(x^2);
Extract Expr(cc * d, cc);// looks up cc = x^2 , so doesn't find cc in cc * d anymore
e più in generale:
Una funzione personalizzata valuta SEMPRE i suoi argomenti e tramite Espr() è possibile impedirglielo.
Estrai Expr recupera SEMPRE l' espressione non valutata dietro un nome (se presente) prima di utilizzarlo: l'utente può impedirgli di farlo?
I comandi della piattaforma spesso risultano disturbati quando vengono utilizzati nomi come argomenti. Valutazione potrebbe risolvere il problema.
Quante categorie di argomenti di gestione ci sono in totale in JSL? C'è una linea rossa dietro?
Re: Estrai EsprPerché dovresti utilizzare lo stesso nome di variabile in più posti in questo modo?
Elimina simboli() e Cancella simboli() non sono la stessa cosa
Names Default To Here(1);
cc = Expr(x ^ 2);
Delete Symbols(cc);
Extract Expr(cc * d, cc);
Re: Estrai ExprGrazie per il link.
Vedi altro...Sembra che Extract Expr() funzioni in modo diverso a seconda di come è definito cc. Per usare cc letteralmente, evita di riassegnarlo con Expr() o usa Name Expr() per gestire attentamente i simboli ed evitare problemi di valutazione. Stavo lottando con un documento impegnativo, quindi mi sono rivolto a
https://domypaper.com/ Il servizio è stato eccellente. Lo scrittore era competente, ha seguito attentamente le mie istruzioni e ha consegnato un documento ben organizzato e di alta qualità. La comunicazione è stata fluida e il documento è stato consegnato in tempo. Sono estremamente soddisfatto dei risultati e utilizzerei sicuramente di nuovo questo servizio per incarichi futuri.