Re: Inserimento espressione in listaLa prima sezione, in cui desidero inserire espressioni in un elenco, può essere facilmente risolta dalla riga di codice sottostante.
insert into( newlist, name expr( name_arg ) );
Alla risoluzione della prossima sezione!
Re: Inserimento espressione in listaHo fatto funzionare la seconda parte della sceneggiatura, quella con i termini di interazione!
</CODE></PRE><P> </P><PRE><CODE class=" language-jsl">for( a = 1, a <= N items( collist2 ), a++,
// Empty arg to identify cols by names
name_arg = Expr( column() );
name_arg2 = Expr( column() );
// For whatever the match below, the result must be added to newlist2
// Regex works, as per regex101.com
if( !contains( collist2[a], "*" ), insert into( name_arg, eval insert( collist2[a] ) );
insert into( newlist2, name expr( name_arg ) ), // single term insert, refer to basic needs flow above
insert into( name_arg, eval insert( regex( collist2[a], "^(.*)\*(.*)$", "\1" ) ) ); // Breaks apart 1st group to insert into column()
insert into( name_arg2, eval insert( regex( collist2[a], "^(.*)\*(.*)$", "\2" ) ) ); // Breaks apart 2nd group to insert into column()
insert into( newlist2, Eval Expr( expr( name_arg )*expr( name_arg2 ) ) );
);
);
show( newlist2 );
Output:
newlist2 = {Column("Col 1"), Column("Col 2"), Column("Col 3"), Column("Col 4"), Column("Col 5"), Column("Col 1") * Column("Col 2"), Column("Col 2") * Column("Col 4"), Column("Col 5") * Column("Col 5")};Si spera che questo aiuti a guidare gli altri nell'apprendimento delle manipolazioni delle espressioni. È un lungo viaggio, ma è potente e ne vale la pena! 
Inserimento dell'espressione nell'elencoCiao,
Sto imparando a lavorare con le manipolazioni delle espressioni e ho difficoltà a capirlo.
Nella prima sezione del codice sottostante, posso inserire correttamente il nome della colonna stringa nell'espressione column(), ma non riesco a inserire le espressioni generate in un elenco.
La seconda sezione separa i termini di interazione (questo è un elenco di effetti di SLS), li inserisce nella propria espressione column(), li ricompone come termine di interazione e quindi li inserisce in un elenco.Questa sezione non funziona.
Qualcuno ha qualche consiglio utile o vede qualcosa che sto fraintendendo su come funzionano le manipolazioni delle espressioni?Grazie in anticipo!
i nomi predefiniti sono qui(1); // Necessità di base di seguito, ma funziona solo per nomi di colonne singole collist = { "Col 1", "Col 2", "Col 3", "Col 4", "Col 5" }; nuovalista = {}; for( i = 1, i <= N elementi(collist), i++, // Argomento vuoto per identificare colonne per nome name_arg = Expr( column() ); insert into( name_arg, eval insert( collist[i] ) ); // result: column("Col 1"), o altre colonne inserite <-- Funziona come previsto show( name_arg ); // Mostra l'inserimento riuscito in insert into( newlist, insert into( name_arg, eval insert( collist[i] ) ) ); // L'inserimento annidato in non funziona // È necessario inserire il risultato del primo inserimento in, into newlist ); mostra( nuova lista ); // Attualmente mostra una lista vuota /////////////////////////////////////////// NON FUNZIONA , BELOW // Flusso avanzato - rilevamento interazione collist2 = { "Col 1", "Col 2", "Col 3", "Col 4", "Col 5", "Col 1*Col 2", "Col 2*Col 4", "Col 5*Col 5" }; nuovalista2 = {}; for( a = 1, a <= N elementi( collist2 ), a++, // Argomento vuoto per identificare colonne per nome name_arg = Expr( column() ); // Per qualunque corrispondenza di seguito, il risultato deve essere aggiunto a newlist2 // Regex funziona, come per regex101.com if( !contains( collist2[a], "*" ), insert into( name_arg2, eval insert( collist2[a] ) ), // inserimento di un singolo termine, fare riferimento ai bisogni di base flow above insert into( name_arg2, eval insert( regex( collist2[a], "^(.*)\*(.*)$", "\1" ) ) ); // Separa il primo gruppo da inserire nella colonna () insert into( name_arg2, eval insert( regex( collist2[a], "^(.*)\*(.*)$", "\2" ) ) ); // Separa il secondo gruppo da inserire nella colonna () // La riga seguente è un mockup dell'unione del primo e del secondo gruppo come termini di interazione - non funziona //eval expr( expr( insert into( name_arg2, eval insert( regex( mylist2[a], "^(.*)\*(.*)$", "\1" ) ) )*insert into( nome_arg2, eval insert( regex( mialista2[a], "^(.*)\*(.*) $", "\2" ) ) ); ) ); Output_desiderato = { colonna("Col 1"), colonna("Col 2") , colonna("Col 3"), colonna("Col 4"), colonna("Col 5"), colonna("Col 1")*colonna("Col 2"), colonna("Col 2")*colonna ("Col 4"), colonna("Col 5")*colonna("Col 5") };Scriptingfinestre