Dostęp do składowych klasy
Pojedynczy obiekt
:zmienna @ żółw
instrukcja @ żółw
(instrukcja arg1 arg2 ...) @ żółw
Zbiór obiektów
:zmienna @ zbiór
instrukcja @ zbiór
(instrukcja arg1 arg2 ...) @ zbiór
Żółw (obiekt) zawiera zmienne i funkcje zdefiniowane dla swojej klasy. Operator @
pozwala odczytać innym żółwiom wartości zmiennych (globalnych,
które w tym przypadku pełnią rolę publicznych). Inne żółwie mogą także wywołać wykonanie funkcji i
instrukcji w odniesieniu dla danego żółwia.
Jeśli po prawej stronie operatora @
znajduje się zbiór (lista lub tablica), wtedy operacja
(odczytanie zmiennej, wywołanie instrukcji lub funkcji) zostanie wykonana w odniesieniu do
wszystkich żółwi będących elementami zbioru (uwaga: wszystkie elementy zbioru muszą być żółwiami bądź
zagnieżdżonymi zbiorami żółwi).
Jeśli wykonywana operacja zwraca wynik, to jest on umieszczany w liście lub tablicy, zależnie od typu zbioru
użytego jako argument operatora. Kolejność tak otrzymanych wyników odpowiada kolejności zółwi w zbiorze.
Operacje dla każdego z żółwi są wykonywane równolegle, a do czasu ich zakończenia wyniki są dostępne w postaci
obietnic.
Przykład 1:
to model :p
make "l 0
to fn [:x 2]
make "l :x
output :x^:p
end
end
make "t (newt $model 2)
print who @ :t
print (fn 5) @ :t
print fn @ :t
print :l @ :t
Rezultat wykonania:
model1
25
4
2
Przykład 2:
to model
make "l random 5
to fn :p
output :l^:p
end
end
make "t newturtles 3 $model
print who @ :t
print :l @ :t
print (fn 5) @ :t
Rezultat wykonania:
[model1 model2 model3]
[1 4 3]
[1 1024 243]
Zobacz także:
Żółw - obiekt
Równolegle działające żółwie
Spis treści