es10 (a) 2 (b) (Var 2) modificata ci dice che quando cerchiamo il valore di una variabile in un frame, questo sara' sempre 1 se la variabile non appartiene al dominio del frame (al contrario della versione non modificata, che ci dice che se la variabile non e' nel dominio del frame va cercata nel frame immediatamente superiore, se esiste). Quindi, quando nella chiamata di f andiamo a valutare (+ y a), il valore di a sara' 1. ________________________________ (c) |a --> 3 | n --> |f --> | _______________________________ ^ | | ----------- n'--> | y --> 1 | ----------- L'interprete, quando valuta (f 1) valuta f (il cui valore e' una chiusura c), poi valuta l'argomento dell'applicazione, che e' l'espressione 1, il cui valore e' 1 e poi inserisce un nuovo frame "sotto" quello puntato dal primo elemento di c. Tale nuovo frame conterra' le associazioni parametri formali/parametri attuali. Avendo come riferimento il puntatore a tale nuovo frame l'interprete andra' valutare il corpo della funzione, in questo caso l'espressione (+ y a).