2009-02-26

lambda and name

Japanese version

In mathematics, we use function names as f, g, and so force. When we have more than one function, these names f and g are useful to distinguish them. I assume the name f comes from English ``function'' in English (an old language on a plant called Earth.) But for any function we made, we wrote it as f:= ... except very special functions. We always wrote f:= ... for functions, for example, f(x):= x, f(x):= x^{2}, f(x):= sin(x), and so on.

It does not matter to write f:= ... or g:= ... . The substance part is this ... part, f is just like a tag of a parcel. If we can get a parcel, the tag does not matter.

Every planet has city halls if there are governments. Every planet has banks if there exists money. The people living these planets must wait in a long queue to get the service. This is usually defined by a law. If these services violate the law, i.e., they did not make the people wait, they will be arrested. Surely your planet would be the same. Most of the city hall in these planets issues a number on a card as describing a waiting order. A function name is just like such a number on the card. There is not so much meaning.

I prefer to be called by my name when I am waiting for my turn. But I will be fine, if this call-by-number system makes less waiting time than the call-by-personal-name system. The important thing is this ``number'' indicates what or who. If ``10'' indicates me, I am ``10.'' I have no feeling to prefer number 10. I do not say ``Oh, the number 10? I do not accept that number.'' The important thing is ``mapping'' from the number to me. Therefore, I could accept any number like 10, 42, or 156.

Although I repeated a name is a second matter, mapping from name to substance is essential. I could say a name is for mapping. If you can say several things by one name, it is a great first step of abstraction.

But, lambda calculus avoids names. If we do have less names, we can concentrate the substance. We use the name ``lambda'' instead of ``function''. ``Lambda'' seems no meaning, dry, and it seems not a name. On the other hand, a name is important for human understanding process.

Marvin: ``What a contradiction! A name is important, but does not matter. I'm depressed.''

I mean, mapping is the substance, which is depends on name. Therefore, a name is important ``for human,'' but the name itself can be anything like 10. In this sense, it does not matter. Isn't it clear?

A computer called a computer in English, Keisanki in Japanese, Rechner in German. Even the real substance computer hardware is the same, it is called different, different names. 1 is one in English, Eins in German, and ichi in Japanese. ``A rose by any other name would smell as sweet.'' ``one by any other name should share the same concept as 1.'' Human usually understand a substance by its name. In this sense, the name is important. Some can think this is a philosophical problem. But a computer language called scheme (a lisp) clearly distinguish the substance and its name. The substance is lambda, and we can call it directory, or we can bind the name to a lambda (mapping!), then call it by the bind name. This is well defined. A machine can perform it. So, I think it is not a problem like ``what is life?'' Of course, it is difficult to make a map with a good name. Maybe think about a good name is a philosophical problem. (Here I use a stereotype as philosophy == difficult).

No comments: