☐ nuova fantastica funzionalità
☐ potrebbe aiutare molti utenti!
☐ rimuove qualcosa che sembra un "insetto"
☑ bello da avere
☐ nessuno ne ha bisogno
Cosa ti ha ispirato a richiedere questa lista dei desideri?
Per verificare se una stringa fa parte di una stringa più grande, e per ottenerne la posizione esatta, si può usare contains() .
Per verificare se un elemento è presente in un elenco e per ottenerne la posizione esatta, si può usare contains() .
Per verificare se un'espressione viene visualizzata in un'espressione lunga
... non c'è alcuna funzione in JMP/JSL. Né c'è una funzione per ottenere la posizione.
Questo è sorprendente. Perché c'è questo bello
Substitute(Expr(...), Exr(replace), Expr(with))
che deve scoprire se un'espressione può essere trovata in un'espressione principale e dove si trova.
Quale miglioramento vorresti vedere?
Fornire una funzione JSL per verificare se un'espressione viene visualizzata in un'espressione lunga e per ottenere la/le posizione/i:
ad esempio, se è il 5° argomento del 3° argomento del 1° argomento dell'espressione principale, la funzione potrebbe restituire {{1,3,5}}.
Se trova l'espressione in più punti, potrebbe restituire corrispondenze tutte diverse.
Se trova l'espressione, ma non riesce a localizzarla esattamente [perché è solo parte di un argomento], potrebbe restituire 1.
Se l'espressione è mancante, potrebbe restituire missing.
Perché questa idea è importante?
Contains(Expr(...), Expr(search)) semplificherà la creazione di script JSL.
È leggermente correlato a un'altra nuova funzionalità, :folded_hands: Expression Indexing: accesso in lettura e scrittura
altri desideri da 
sembra funzionare:
ContainsExpr=Function ({expression, pattern},
tmp = Substitute(Name Expr(expression), Name Expr(pattern), Expr(.));
not(Name Expr(tmp)==Name Expr(expression))
);
myExpression = Expr({a+b/(x-y),3} );
ContainsExpr( Name Expr(myExpression), Expr(X));
ContainsExpr( Name Expr(myExpression), Expr(c));
ContainsExpr( Name Expr(myExpression), Expr(3));o tramite Estratto Expr :
ContainsExpr=Function ({expression, pattern},
Not(is empty(Extract Expr(expression, pattern)));
);
myExpression = Expr({a+b/(x-y),3} );
ContainsExpr( Name Expr(myExpression), Expr(X));
ContainsExpr( Name Expr(myExpression), Expr(c));
ContainsExpr( Name Expr(myExpression), Expr(3));Too bad there is no setting for custom functions to NOT evaluate the argument, but just look it up - a magic Estrai Espris capable of.
Without this possibility, maybe it's better to learn the Not(is empty(Extract Expr(
... instead of EVERY time having to wrap the arguments with Espr() to save them from getting evaluated.
@Sarah Sylvestre .
-> il desiderio può essere chiuso.