Below, you can find another hint for the Challenge.
You should only get here after reading, digesting, and applying the .
Let us start with the easy things, one at a time. First, introduce a function transcribe() for the main program.
Making such a change sounds easy but actually involves a bit of extra work, because a change in the program must also be reflected in the blueprint.
However, there is a more clever way to accomplish such a change. We change the blueprint only, and then run the program. Its output is a new program constructed from the new blueprint, also incorporating the new blueprint.
Here is the old program with a new blueprint:
The output () is a new program with a new blueprint:
This new program outputs itself ().
Can you improve this solution further? On the wish list we still have:
Try your program in the machine, and see if you can extend it to an improved solution.
It is your turn ...
If you tried this hint, or do not see how it helps, then you are ready for the .