This example shows how to use Mealy semantics to model a vending machine.

In this example, the vending machine requires 15 cents to release a can of soda. The purchaser can insert a nickel or a dime, one at a time, to purchase the soda. The chart behaves like a Mealy machine because its output soda depends on both the input coin and current state:
When initial state got_0 is active. No coin has been received or no coins are left.
If a nickel is received (coin == 1), output soda remains 0, but state got_nickel becomes active.
If a dime is received (coin == 2), output soda remains 0, but state got_dime becomes active.
If input coin is not a dime or a nickel, state got_0 stays active and no soda is released (output soda = 0).
In active state got_nickel. A nickel was received.
If another nickel is received (coin == 1), state got_dime becomes active, but no can is released (soda remains at 0).
If a dime is received (coin == 2), a can is released (soda = 1), the coins are banked, and the active state becomes got_0 because no coins are left.
If input coin is not a dime or a nickel, state got_nickel stays active and no can is released (output soda = 0).
In active state got_dime. A dime was received.
If a nickel is received (coin == 1), a can is released (soda = 1), the coins are banked, and the active state becomes got_0 because no coins are left.
If a dime is received (coin == 2), a can is released (soda = 1), 15 cents are banked, and the active state becomes got_nickel because a nickel (change) is left.
If input coin is not a dime or a nickel, state got_dime stays active and no can is released (output soda = 0).
This example of a Mealy vending machine illustrates these Mealy design rules:
The chart computes outputs in condition actions.
There are no state actions or transition actions.
The chart defines chart inputs (coin) and outputs (soda).
The value of the input coin determines the output: whether or not soda is released.