Idiomorph
An Idiomorph is a type of program that repeatedly takes its own output as its next input, producing a sequence of transformations. The process continues until a halting condition is reached, such as when the program produces the same output twice in succession or generates a designated halting string. The final output of an idiomorph can be either the complete stream of outputs produced during its execution or its last output.
Overview
- Inputs and outputs may take any form, including text, images, integers, floats, or other data types.
- Any finite state machine can be expressed as an idiomorph if arbitrarily long strings are permitted.
- An idiomorph program by itself only defines the mapping from input to output. A separate machine or program is required to run the program repeatedly until a halting condition is met.
- Idiomorphs can continue to run without ever reaching a halting condition.
Example
The more simple side of idiomorphs can be described using input-output mappings. For instance, to generate the word Hello, the following mapping may be used:
Input | Output |
---|---|
|
H
|
H |
He
|
Hel |
Hell
|
Hello |
Hello
|
Here, the final mapping returns Hello again, so the program repeats the same output twice. This reaches the halting condition, ending the process.
Etymology
The term derives from the Greek roots:
- idios (self)
- morphē (form, change)
The name was created by User:RainbowDash