10.2

 bae a de nantis                      torra a segus

Podet esser como utile po imparare   a si firmare unu pagu e analizare sos passos de sos programmas chi hamus iscrittu. A ischire e ite siat una lista nos azuat s'intuitu nostru e totu. Si pesat faende unu elencu de sos elementos suos iscrittos a intro de parentis grafas. Poden esser numenes de listas totus sas paraulas chi cuminzan cun d una litera de s'alfabetu e cuntenen literas e numeros a volontade senza ispazios in biancu. Si una lista tenet unu numene mantenet cussu finas a cando no si ddu mudamus. Sos elementos de una lista poden esser ateras listas. Pesamus una lista de listas chi si narat lis.

 lis={{2,4,6,8},{a,b,c,d}};

 Su puntu e virgula a sa fine de sa riga de input impedit s'output, ma si cherimus ischire comente su programma in sa memoria sua hat arreziu sa lista dda pedimus a numene. Est una lista cun duos elementos onniunu de su cales est una lista po contu suu.

 lis

{{2, 4, 6, 8}, {a, b, c, d}}

 Pesamus una funzione esponenziale f de duas variabiles. Podimus preziare e comente triballat cun numeros e literas.

 f[x_,y_]:=x^y

{f[2,3],f[a,b],f[x,3],f[4,y]}

                  b              3                  y

{8,           a ,            x ,                4  }

MapThread aplicat sa funzione f, in ordine, leande unu elementu de una lista e ponendeddu a base de sa esponenziale, e su currispondente elementu de sa s'atera lista e ponendeddu a esponente de sa base. Amentamus chi unu elementu de una lista si che ogat jandeddi un'indighe oportunu. Po esempiu:

{lis[[1]],lis[[1,1]],lis[[2,2]]}

{{2, 4, 6, 8}, 2, b}

MapThread[f,{{lis[[1]]},{lis[[2]]}}]

     a    b   c   d

{{2 , 4 , 6 , 8 }}

Si semus arresonande de una lista de listas, comente est lis, Flatten est una funzione chi torrat sa lista de listas a livellu prus bassu.

Ponie contivizu mannu a sos esempios.

Flatten[lis]

{2, 4, 6, 8, a, b, c, d}

esempiu={{{{1,2},{a,b},w}},{x,y},t};

{Flatten[esempiu,1],Flatten[esempiu,2],

Flatten[esempiu,3],Flatten[esempiu]}

{{{{1, 2}, {a, b}, w}, x, y, t}, {{1, 2}, {a, b}, w, x, y, t},

{1, 2, a, b, w, x, y, t}, {1, 2, a, b, w, x, y, t}}

Apply aplicat una funzione a sos elementos de una lista, po esempiu si fun numeros ddos summat s'unu cun s'ateru.

Apply[Plus,{1,2,3,4,5}]

15

Hamus presentau una variabile casuale comente una lista fatta de duas listas, in sa prima sos valores x de sa varibile e in sa segunda sas probabilidades chi a onni unu x corrisponden. Su valore mediu est sa summa de sos produttos de sos valores x po sas probabilidades p: tando cun MapThread e Time moltiplico sos valores po sas currispondentes probabilidades e cun Apply nde fatho sa summa: torramus a sa funzione media. Riga a riga nde faimus unu cumentariu: media est su numen de una funzione, a intro de sas parentisis cuadras si elencan sos argumentos de sa funzione. Po custa funzione arrechedet una lista. Module est unu cumandu chi permitit a su programma de disponner chi sa variabile k a sa cales est istau assinnadu su valore de sa lista l siat una variabile locale. N est una funzione chi pedit valores numericos reales aprossimaos cun tantas cifras deghimales, chimbe de default. Apply est sa funzione chi summat, difattis po argumentu tenet Plus, su risurtau de una moltiplicazione, Times, intra sos valores x, k[[1]] po sas probabilidades p, k[[2]] carculaos cun ordine, unu po unu MapThread de sa variabile aleatoria. Tirande duos dados si perdet chentu Euros si sa summa de sos puntos est minore de batoro; si nde perdet chimbanta si sa summa de sos puntos est intra sas lacanas de batoro e de otto ; si nde inchet chentuchimbanta si sa summa de sos puntos est prus de otto. Si pintet sa variabile e si nde carculet su valore mediu.

media[l_List]:=

  Module[{k=l},

      N[

       Apply[

       Plus,Flatten[

         MapThread[Times,{{k[[1]]},{k[[2]]}}]]]]]

jogu:={{-100,-50,150},{3/36,25/36,8/36}};

media[jogu]

-9.72222