| My favorite programming language is Zero (yes it is my invention). If you have not heard of it then I am not surprised because the language is very new (theoretical actually). You develop programs in it by defining new infinite sequences from existing ones. All begins with the primitive infinite sequences and the language's means of combination (specified with decimal digits) ---universe begin--- sequence 01: 0 1 2 3 4 5 ... sequence 03: 1 2 3 4 5 6 ... sequence 05: 2 3 4 5 6 7 ... sequence 07: 3 4 5 6 7 8 ... ... ---universe end--- 0105: count by two ---universe begin--- sequence 01: 0 1 2 3 4 5 ... sequence 02: 0 2 4 6 8 10... sequence 03: 1 2 3 4 5 6 ... sequence 05: 2 3 4 5 6 7 ... sequence 06: 1 3 5 7 9 11 ... sequence 07: 3 4 5 6 7 8 ... ... ---universe end--- 01030501: set up some cycles ---universe begin--- sequence 01: 0 1 2 3 4 5 ... sequence 02: 0 2 4 6 8 10... sequence 03: 1 2 3 4 5 6 ... sequence 04: 0 1 2 0 1 2 ... sequence 05: 2 3 4 5 6 7 ... sequence 06: 1 3 5 7 9 11 ... sequence 07: 3 4 5 6 7 8 ... ... ---universe end--- Please note that as the universe grows we always leave space for more sequences by skipping every other sequence designation. What makes this language useful is that with very little effort any two arbitrary infinite sequences can be defined. As a consequence any mathematical relation is easily defined as a mapping from members of one sequence to the corresponding members of the other sequence. I will briefly describe the language's means of combination. Writing a sequence designation one next to another will form new sequences by pulling out corresponding members. But all sequences are infinite so after the last designated sequence is visited the member value is used to select the possibly new member in the first designated sequence. Digits that are not able to be confused with sequence designations specify the three other primary means of combination. They are "cons", "car", "cdr". With a proper understanding of their use one can build arbitrary sequences. I will just say that "cons", "car", and "cdr" are used to combine entire sequences which is logically equivalent to combining corresponding members of those sequences. In the code above I write "0105". The "01" is a sequence designation. The "05" is a sequence designation. |