2009-03-12

A broken vending machine

Japanese version

A few months ago, there was a question, what if the vending machine is broken? Since I use a vending machine as an analogy of a function, we could also think about a broken function.

First of all, what is ``broken'' means?

1. If you put anything to the machine, nothing comes out.
2. If you put anything to the machine, the output is always the same.
3. If you put anything to the machine, the output is always unexpected.

If a vending machine behaves one of them, we could say it is ``broken.'' But, a word ``broken'' is a still ambiguous. If the machine always behave one of them, such machine might just fulfill its specification. I would like to say, if the machine could not fulfill the specification, then I define the machine is broken. If we agree with this definition, we can only say a machine is broken or not by looking up the specification. λ expression is enough powerful to express these specifications.

1. Nothing comes out: First we define or interpret the meaning of ``nothing comes out.'' If a vending machine is an exchanger of Altair dollar, ``nothing comes out'' means 0 Altair dollar comes out from the machine. Then, we could write it as λx.0. In the same way, if nothing comes out means 0 of something comes out, we could write all of these kind of things.

2. Always the same output: The output is always the same is easy. Let's write the output is y, the same thing every time comes out. This is λ x.y. This means for any input x, the output is always y.

3. An unexpected output: Again first we need to make this ``unexpected''means clear. For example, who expects the output? A person expects the output, I presume. A human being cannot expect the output. But, it might be complicated for a human being. Marvin might can expect the output. We can use a function which Marvin is involved. For example, Marvin could figure out the output is a Mersennely twisted. Then we can write a function. The output of a pseudo random number generator seems unexpected, but actually it is just that a human can not recognize it. However, Turing proposed a hardware random number generator, which uses a radioisotope observer machine. In this case, Marvin also has a problem to expect the output (maybe...).