Utwórz wiele żółwi (konstruktor asynchroniczny)
(anewturtles n)
anewturtles n [instrukcje]
(anewturtles n [instrukcje] wyrażenie1 wyrażenie2 ...)
anewturtles n funkcja
(anewturtles n funkcja wyrażenie1 wyrażenie2 ...)
Tworzy n nowych żółwi jednocześnie. Lista instrukcji lub funkcja podane jako argument są
wykonywane jako konstruktor dla każdego nowego żółwia. Konstruktory są wykonywane równolegle. Żółw wywołujący
instrukcję newturtles
nie czeka na zakończenie wykonania
konstruktorów. Argumenty konstruktora mogą być podane jako opcjonalne wyrażenia (wszystkie nowe żółwie użyją
tych samych wartości wyrażeń).
Przykład 1:
"t := (anewturtles 3)
print who
print children
foreach "ti :t [(print who @ :ti parent @ :ti )]
Rezultat wykonania:
first
[t1 t2 t3]
t1 first
t2 first
t3 first
Przykład 2:
"t := anewturtles 3 [
to getx op :x end
"x := random 10
print who
]
print getx @ :t,3
Rezultat wykonania:
t2
t1
t3
2
Przykład 3:
to model :dt
repeat 3 [(print who repcount) wait :dt]
"x := :dt
end
"t := (anewturtles 2 $model 10)
print :t
Rezultat wykonania:
Polecenie print :t
jest
wykonane zanim żółwie zakończą wykonanie konstruktorów.
model1 1
[model1 model2]
model2 1
model1 2
model2 2
model1 3
model2 3
Zobacz także:
Żółw - obiekt
Spis treści