A Quine on Every Line
Fission, 7 bytes
'!+!NR"
A rather simple modification of the shortest Fission quine I have found so far: I'm simply using the non-destructive !
instead of O
and added an N
for newline.
So all in all, here is how it works: control flow starts at the R
with a right-going atom. "
toggles string mode, which means everything until the next "
is printed: in this case '!+!NR
. That leaves the "
and the newline to be printed. '!
sets the atom's mass to 33, +
increments it to 34 (the character code of "
) and !
prints the quote. N
prints a newline, and R
is now a no-op in this case, so the loop starts over.
The following 7-byte solution also works:
"NR'!+!
><>, 16 bytes
'ard3*o50l2)?.~~
The traditional ><> quine uses too many o
s, so we use a loop for printing. Before each jump we push 5 and 0 (the coordinates of where to jump to), after which we either jump with .
if there's still something to print, or pops the top two values with ~~
.
(Reverted to the 16 version since I forgot about the stack overflow rule.)
CJam, 13 bytes
{_o"_g
"o1}_g
The online interpreter doesn't print anything before the program terminates, so you'll have to test this in the Java interpreter.
Explanation
Finally a generalised CJam quine which doesn't end in _~
.
{_o"_g
"o1}
This simply pushes a block. _g
duplicates the block and executes it repeatedly while the top of the stack is truthy (discarding the condition).
Now inside the block, the other copy of the block is still on the stack. We duplicate and print it with _o
and then we print _g
followed by a newline (the required extra newline between quines) with "_g\n"o
. Finally we push a 1
onto the stack for the loop to repeat, because unfortunately, blocks aren't truthy (or falsy) in CJam.