Quickloox

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

28 apr 2008

Una rimescolata di AppleScript

Lo script di oggi mescola gli elementi di una lista. Per prima cosa ci vuole una lista:

set unaLista to {“a”, “b”, “c”, “d”, “e”}

La lista viene mescolata tramite una funzione. Il nome della funzione sarà mescola. Questo comando serve a fare eseguire la funzione:

mescola(unaLista)

E ora arriva la funzione.

on mescola(unaLista) script o property lista : unaLista end script
set lunghezzaMeno1 to (count unaLista) - 1
repeat with i from 1 to lunghezzaMeno1 + 1
	set j to (random number lunghezzaMeno1) + 1
	set v to item i of o's lista
	set item i of o's lista to item j of o's lista
	set item j of o's lista to v
end repeat

end mescola

La parte script… end script, che contiene una property, definisce una proprietà dello script, un elemento su cui lo script agisce: in questo caso è l’argomento della funzione, cioè unaLista (è complicato, ma non serve per fare AppleScript elementare, quindi non preoccupiamoci troppo).

Il resto è un ciclo che fa il lavoro sporco e rimescola la lista. Non lo spiego perché è intricato, ma è un ciclo. È sufficiente seguirlo una parola per volta con il tempo e l’attenzione dovuta per capirlo.

Quest’ultimo comando è strumentale e serve solo a mostra la lista riordinata:

display dialog unaLista as string

Riepilogo l’intero script qui sotto. Buone prove!

set unaLista to {"a", "b", "c", "d", "e"}

mescola(unaLista)

on mescola(unaLista) script o property lista : unaLista end script

set lunghezzaMeno1 to (count unaLista) - 1
repeat with i from 1 to lunghezzaMeno1 + 1
	set j to (random number lunghezzaMeno1) + 1
	set v to item i of o's lista
	set item i of o's lista to item j of o's lista
	set item j of o's lista to v
end repeat

end mescola

display dialog unaLista as string

Commenta