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.

Esempio 209. Esempio select

-- 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}}


Esempio 210. Esempio select

-- 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()