Challenge
Your task is to write a piece of code that outputs another piece of code. That code must in turn output yet another code until the final code outputs the integer 1. The chain ends the first time 1 is outputted.
None of your programs may share any characters (there's one exception in the Rules-section).
The winning submission will be the submission with the longest chain. The tie-breaker will be shortest total code-length.
Rules:
- You may use both functions, programs and snippets. You may assume a REPL environment.
- All functions must be written in the same language
- Symbol independent languages are disallowed. This includes partially symbol independent languages such as Headsecks.
- Default output formatting may optionally be disregarded in a function's output. This includes trailing newlines,
ans =
etc. - You may reuse the space character (ASCII code point 32), but note the following:
- You may use as many space characters as you like in one of the functions, but restrict it to maximum 5 in all other functions
- You may not reuse any characters if code point 32 is not space in your language.
None of the programs may take input
The chain must be at least two programs long.
Example:
Your initial code is abc+cab+bac
. This outputs: foofoo*123
, which in turn outputs disp(~0)
, which outputs 1
. This is a chain of 3 programs, with a combined length of 29 (tie breaker).
2^3
, which would just evaluate to1
, or does it have to be e.g.lambda:2^3
,print(2^3)
, etc.? \$\endgroup\$1
be both a program and the output of that program or does the chain end when1
is the output? \$\endgroup\$