Compile[], pt, rifacimento dicembre 2002

Un approfondimento sulle funzioni compilate e su Module[]; nella funzione g[], f è richiamata internamente subito dopo essere stata compilata

g[x_] := 
      Module[{y, z}, f = Compile[{y}, z = y + 2; z + 1]; f[x]]

g[1]

In questa versione compilata di fib1 del notebook su Fibonacci, è fondamentale che la variabile nella lista di Compile non abbia lo stesso nome della variabile di fib (qui nn e non n)

fib[n_] := 
      Module[{uno, due, temp, i}, uno = 1; 
          due = 1; 
fi = 
            Compile[{nn}, 
For[i = 1, 
                i < nn, i++, 
temp = 
                  uno; 
uno = 
                  temp + due; 
due = temp]; 
              uno]; 
fi[n]] /; IntegerQ[n]

fib[20]

f2[x_] := Module[{}, undici = 11; dodici = 12; x]

{f2[10], undici, dodici}

f3[x_] := Module[{}, undici = 11; dodici = 12; x;]

{f3[10], undici, dodici}

... allora Return

f3[x_] := Module[{}, Return[undici = 11]; dodici = 12; x;]

f3[10]

f4[x_] := 
      Module[{}, cento = 100; Return[cento 10]; dodici = 12; x;]

f4[10]