Idiom # 182: Quine program
A quine is a program that prints its own source code.
Code
A quine defined as a feature:
The idea in this code is that it contains a list a
of strings of
all the lines of its source code and then prints this list up to the start of
the list contents, then prints the whole list wrapped in quotes and separated by
commas, and finally prints the tail of the list, which is the code ending the
list declaration and the following code.
A trick used in this code is to define features q
and c
that returns constant strings containing a double
quote "\""
and a comma ","
,
respectively. Using q
and c
avoids the need for quotes
in the code, which would need special handling to create the correct escape
sequences.
A quine can be slightly smaller if it is not wrapped in a feature, but runs directly in the universe and if some redundant whitespace is removed: