<pre>
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.8)
     then
     if (myrandom() <= 0.7)
            then
            x := 1;   
            else
            x := 0; 
            end if;
     else
     x := -1; 
     end if;
end when;
end MarkovChain;
</pre>