The CHAOS
operator will provide a new source of uncertainty to the teletype via chaotic, yet deterministic systems.
Here is a progression of the Logistic Map, which devolves into chaos past certain parameter values.
I haven’t put my nose to the grindstone on this operator, so before I start, I’ll put the usual design questions in play.
Given the number of potential chaotic implementations, I wonder what limitations we should set on
- operator parameter count
- access to hidden variables, and count
as well as the usual operator questions:
- name (
CHAOS
) - alias (
&
?$
? Surely the language won’t be complex enough to need both for something clever.)
And, if anyone wants to suggest algorithms to implement, I’m happy to hear them. Some links were shared in the other thread, but I should be able to implement anything that relies on only arithmetic and sin()
and cos()
. I’m interested in knowing what an algorithm is useful for, more than anything.
Algorithm Candidates
While we don’t have to stick to only one algorithm, we should probably limit the set to a small, useful set.
- Logistic map (1 parameter, 1 constant, 1 dimension)
- Cubic map (1, 1, 1)
- Henon map (2, 1, 2)
- Cellular Automata (1, 1, 1)
Tentative Syntax
CHAOS | get next chaotic value
CHAOS 5000 | set current value to 0.5
CHAOS 15000 | set current value to 1.5
CHAOS -12500 | set current value to -1.25
CHAOS.R 5000 | set chaos parameter to half of range
CHAOS.ALG | get current algorithm
CHAOS.ALG 0 | select LOGISTIC
CHAOS.ALG 1 | select CUIBIC
CHAOS.ALG 2 | select HENON
Cellular Automata
Given the difference in parameter and value type, this algorithm should be spun off into a new operator.
Tentative Syntax
CA.R 123 | select rule 123
CA 63 | set current value to 63
CA | get next value