Quickloox

Dal mondo Apple all'universo digitale, in visualizzazione rapida dell'ovvio

6 ago 2007

L'arte si discute

Sulla mailing list Macscrpt hanno fatto una innocente domanda su come cucire insieme due liste in AppleScript.

Gli hanno risposto in tutti i modi possibili. È solo codice, ma vederlo così è quasi arte.

Intendiamoci: Lisp è più elegante. AppleScript può però fare cose belle, anche se in modalità de noantri.

Il problema era: partendo dalle liste {1, 2, 3} e {“a”, “b”, “c”}, arrivare a una lista sola, {{1, 2, 3}, {“a”, “b”, “c”}}.

Le soluzioni: set questaLista to {1, 2, 3} set quellaLista to {“a”, “b”, “c”} set coppiaListe to {} set end of coppiaListe to questaLista set end of coppiaListe to quellaLista –> {{1, 2, 3}, {“a”, “b”, “c”}}

set questaLista to {1, 2, 3} set quellaLista to {"a", "b", "c"} set coppiaListe to {} set coppiaListe to ((coppiaListe & {questaLista}) & {quellaLista}) --> {{1, 2, 3}, {"a", "b", "c"}}

Ma c’è chi ha scritto praticamente un manuale della gestione delle liste:

set _lista1 to {1, 2, 3} --> {1, 2, 3} set _lista2 to {"a", "b", "c"} --> {"a", "b", "c"} set _lista3 to _lista1 & _lista2 -- crea una lista da due liste --> {1, 2, 3, "a", "b", "c"} set _lista3 to _lista1 & {_lista2} -- aggiunge una lista a una lista --> {1, 2, 3, {"a", "b", "c"}} copy _lista2 to end of _lista1 -- aggiunge una lista a una lista --> {1, 2, 3, {"a", "b", "c"}} copy {"x", "y", "z"} to item 2 of _lista1 -- sostituisce un elemento di una lista con una lista --> {1, {"x", "y", "z"}, 3, {"a", "b", "c"}} set coppiaListe to {_lista1, _lista2} -- crea una lista da due liste --> {{1, 2, 3}, {"a", "b", "c"}} set beginning of _lista1 to _lista2 -- aggiunge una lista all'inizio di una lista --> {{"a", "b", "c"}, 1, 2, 3} set 1 to {{"a", "b", "c"}} set listaNidificata2 to {{"uno", "due", "tre"}} set listaNidificata3 to {{"do", "re", "mi"}} set listaNidificata4 to listaNidificata1 & listaNidificata2 & listaNidificata3 --> {{"a", "b", "c"}, {"uno", "due", "tre"}, {"do", "re", "mi"}}

Se vuoi saperne di più su AppleScript, è il caso di… mettersi in lista.

Commenta