select
select
<lst>:select(field)
<lst>:select({field1, field2})
<lst>:select(foo(item, pos))
Itera il contenuto della lista ritornando nuovi elementi costruiti dal selettore. Nel primo caso i membri stessi della lista che hanno chiave "field", nel secondo caso i membri della lista che hanno chiave uguale ad uno dei fields nella lista in ingresso. Nell'ultimo caso il valore di ritorno dalla funzione foo che passa in ingresso l'elemento corrente e la posizione corrente nella lista.
-- ritorna una nuova lista con nome e anno
a = XTable({{nome="massimo", cognome="celino", anno=1971},
{nome="daniele", cognome="piazza", anno=1971},
{nome="oreste", cognome="montanari", anno=1991}})
:select({"nome", "anno"})
:astable()
-->{{nome="massimo", anno=1971},
{nome="daniele", anno=1971},
{nome="oreste", anno=1991}}
-- ritorna una nuova lista con codice e prezzo totale (qta * pru) a partire da un bom di TOP
b = XTable(bom)
-- codice->[1], qta->[3], pru->[7]
:select(function(record, i) return {codice=record[1], totprice=record[3]*record[7]}; end)
:astable()