NTFJ, 118 bytes
NTFJ is an esoteric programming language intended to be a Turing tarpit. It is stack-based, and pushes bits to the stack, which can be later coalesced to an 8-bit number. I believe that this is the optimal, using a loop. (Maybe something can be done by hard-coding @
into the string, which would allow for us to double the l
. I haven't checked, but I believe this would come out as more bytes.)
Anyhow, this is the full code:
~~#~~~~#~##~~#~~~##~##~~~###~~#~~##~####~#~#~###~~#~~~~~~~#~##~~~##~####~##~##~~~##~##~~~##~~#~#~#~~#~~~@(*~##~#~~~@^)
Or, more readable:
~~#~~~~#~##~~#~~~##~##~~~###~~#~~##~####~#~#~###~~#~~~~~~~#~##~~~##~####~##~##~~~##~##~~~##~~
#~#~#~~#~~~@(*~##~#~~~@^)
All the ~
s push 0
and the #
s push 1
. The interesting part is the output loop:
@(*~##~#~~~@^)
@ Coalesce to bit (top 8 items); is 0 on an empty stack
( ) Skip the inside if the top of the stack is not truthy.
* Output as character.
~##~#~~~@ Push 104 to the stack
^ Jump to index 104, which is right here --.
^._____________________________________________________/
The interpreter is here, but with no permalinks as of yet.
Boring Loop-less version, 130 bytes:
~#~~#~~~@*~##~~#~#@*~##~##~~@*~##~##~~@*~##~####@*~~#~##~~@*~~#~~~~~@*~#~#~###@*~##~####@*~###~~#~@*~##~##~~@*~##~~#~~@*~~#~~~~#@*
Doubling (:
) the l
character, 122 bytes:
~#~~#~~~@*~##~~#~#@*~##~##~~@:**~##~####@*~~#~##~~@*~~#~~~~~@*~#~#~###@*~##~####@*~###~~#~@*~##~##~~@*~##~~#~~@*~~#~~~~#@*