Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(+1)

Thank you for the explanation! So you literally embed a solution in the narcissus quine then use that invocation that extracts the solution back out.So you will get a size optimization "cheese" in the case that the solution embedded in narcissus is longer than the invocation code that extracts it.

So narcissus, hero and leander can be used as some data storage if you can craft a quine or a double quine in the case of hero/leander that can embed your data!

No worries about removing the solutions I added, that's completely your prerogative. Thanks to your sheet, I was about to study and learn a whole bunch of solving tricks I wasn't aware of, such as using do after a bracketed number to unbracket it and put it in the execution stack as a prefix for an X verb. Or the fact that a bunch of unbracketed numbers together get added by the interpreter for "free" before being interpreted as a prefix for an X verb.

Nothing was spoiled for me, because I really just wanted to learn these very clever stack manipulating techniques, see them in action and appreciate all the meta programming possibilities and expressiveness of stack programming. Prior to this, whenever I saw Forth, I couldn't look past the limitations that stack manipulations seemed to impose. So many very interesting things to learn from the solutions.