Actors [ :Helloer :Goodbyer :Changer ] ; Define SayRepeatedly [ Remember :Message ; Bind [ :Message ] in [ Say @Message ; Again ; ] ; ] Every :Tick :Helloer does SayRepeatedly "Hello, " ; Every :Tick :Goodbyer does SayRepeatedly "Goodbye, " ; Every :Tick :Worlder does SayRepeatedly "World!" ; Every :Tick :Changer does [ Peek :CurrentScene ; Is HelloWorld ; Then [ Become :GoodbyeWorld ; Done ; ] ; Peek :CurrentScene ; Is @goodbye-world ; Then [ Become :HelloWorld ; Remember Current Helloer ; Done ; ] ; Again ] ; Scenes [ :HelloWorld :GoodbyeWorld ] ; When :HelloWorld :Started do [ Create Helloer ; Create Worlder ; Create Changer ; ] ; When :GoodbyeWorld :Started do [ Create Goodbyer ; Create Worlder ; Create Changer ; ] Enter HelloWorld ;