block MarkovChain //external function myrandom() returns a random real number in [0, 1] parameter Integer x0 = 0; OutputInteger x; algorithm when initial() then x := x0; elsewhen sample(0, 1) then if (myrandom() <= 0.7) then if (myrandom() <= 0.8) then x := 0; else x := 1; end if; else x := -1; end if; end when; end MarkovChain;