Ustaw/utwórz zmienną lokalną
let nazwa wartość
localmake nazwa wartość
Nadaje nową wartość zmiennej lokalnej o danej nazwie, lub tworzy nową zmienną lokalną, jeśli zadana
zmienna nie została znaleziona wśród zmiennych lokalnych utworzonych w bieżącej funkcji.
W dialekcie POOL instrukcja let
jest krótszym sysnonimem dla
localmake
.
Przykład 1:
Przykład obrazuje dostęp do zmiennych lokalnych i globalnych: zmienna globalna :x
o wartości 1 jest widoczna wewnątrz funkcji, dopóki nie zostanie utworzona zmienna lokalna o tej samej nazwie i wartości 5.
Zmiana wartości zmiennej lokalnej nie ma wpływu na wartość zmiennej globalnej.
to fun
print :x
let "x 5
print :x
end
make "x 1
fun
print :x
Rezultat wykonania:
1
5
1
Przykład 2:
Przykład obrazuje sposób tworzenia zmiennych lokalnych oraz przesłanianie zmiennych.
Funkcja silnia
jest rekurencyjna, wywołuje samą siebie zmniejszając wartość argumentu
:x
.
Argument funkcji zawsze jest tworzony jako nowa zmienna lokalna wykonywanej funkcji i przesłania zmienne o tej samej
nazwie w funkcjach nadrzędnych (oraz zmienne globalne i współdzielone o tej samej nazwie).
Wariant 1
Instrukcja let "i :i + 1
tworzy nową zmienną lokalną dla każdego wykonania funkcji silnia
(w tym wykonań zagnieżdżonych).
Wartość początkowa używa zmiennej :i
, widocznej jako
zmienna lokalna nadrzędnej funkcji (funkcji silnia
lub głównej funkcji żółwia #first
).
Wartość w nadrzędnej funkcji nie ulega zmianie.
Wariant 2
Instrukcja make "i :i + 1
przypisuje nową wartość zmiennej :i
dla każdego
wykonania funkcji silnia
. Nowa wartość :i
używa jej poprzedniej wartości. Wartość zmiennej :i
widocznej w głównej funkcji żółwia #first
ulega zmianie.
to silnia :x
let "i :i + 1
print :i
if :x > 1 [op :x * silnia :x - 1]
op 1
end
let "i 0
print silnia 5
print :i
Rezultat wykonania (wariant 1):
1
2
3
4
5
120
0
Rezultat wykonania (wariant 2):
1
2
3
4
5
120
5
Zobacz także:
Zmienne w POOL
make, name - ustaw zmienną lub utwórz zmienną globalną
Spis treści