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  ;funkcja - konstruktor klasy "model"
  make "l 0      ;zmienna globalna - publicznie dostępna
  to fn [:x 2]   ;definicja funkcji składowej klasy "model"
    make "l :x      ;zapamiętaj ostatni argument w :l
    output :x^:p    ;wynik - potęga :p argumentu funkcji
  end
end

;żółw klasy "model"
make "t (newt $model 2)

print who @ :t     ;wywołanie instrukcji
print (fn 5) @ :t  ;wywołanie funkcji z argumentem
print fn @ :t      ;wywołanie funkcji bez argumentu
print :l @ :t      ;odczytanie wartości zmiennej

Rezultat wykonania:

model1
25
4
2

Przykład 2:

to model ;definicja klasy
  make "l random 5
  to fn :p
    output :l^:p
  end
end

;trzy żółwie klasy "model"
make "t newturtles 3 $model

print who @ :t     ;wywołanie instrukcji
print :l @ :t      ;odczytanie wartości zmiennej
print (fn 5) @ :t  ;wywołanie funkcji z argumentem

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