Utwórz żółwia (konstruktor asynchroniczny)
(newturtle)
anewturtle [instrukcje]
(anewturtle [instrukcje] wyrażenie1 wyrażenie2 ...)
anewturtle funkcja
(anewturtle funkcja wyrażenie1 wyrażenie2 ...)
(anewt)
anewt [instrukcje]
(anewt [instrukcje] wyrażenie1 wyrażenie2 ...)
anewt funkcja
(anewt funkcja wyrażenie1 wyrażenie2 ...)
Tworzy nowego żółwia. Lista instrukcji lub funkcja podane jako argument są wykonywane jako konstruktor
nowego żółwia. Konstruktor jest wykonywany równolegle z dalszymi instrukcjami żółwia wywołującego instrukcję
anewturtle
Argumenty konstruktora mogą być podane jako opcjonalne wyrażenia.
Przykład 1:
"t := (anewt)
print who
print children
print parent @ :t
print who @ :t
Rezultat wykonania:
first
[t1]
first
t1
Przykład 2:
"t := anewt [
"x := 10
print who
]
print who
Rezultat wykonania:
Zauważ: napis "first" może pojawić się przed napisem "t1". Konstruktor żówia jest wykonywany równolegle z instrukcjami
żółwia #first
.
first
t1
Przykład 3:
to model :x
to fn
op :zmienna^2
end
wait 50
let "zmienna :x
print who
end
"t := (anewt $model 5)
"y := fn @ :t
print who
Rezultat wykonania:
Wariant 1: Napis "first" pojawia się pierwszy - żółw #first
nie czeka na koniec konstruktora.
first
model1
Wariant 2: Napis "first 25" pojawia się po "model1" - użycie wyniku funkcji fn
zapisanego w zmiennej :y
wymusza oczekiwanie na zakończenie
konstruktora i wykonanie funkcji.
model1
first 25
Zobacz także:
Żółw - obiekt
Spis treści