Skip to main content
3 of 4
fixed my pathetic spelling
MickyT
  • 12.2k
  • 2
  • 26
  • 48

#Underload, 1349 Bytes

When I first looked at Underload for this challenge I was struggling to come up with a way to suitably obscure it. Parenthesis Hell seem like a good red herring, but the example Hello World didn't seem to nest deep enough. Parenthetic was the next choice and had a nice set of parenthesis. I copied the Hello World example for Parenthetic, made sure it didn't output Hello, World! and embedded the Underload commands into it, with a lot of chaff that just gets left in the stack.
I thought this would be cracked and was just hoping it lasted longer than it took me to put it together :) Pleasantly surprised that it lasted the distance.

(((-)([)(]))^((v)((S)(*))^)^(((~)((%))^)^((($))^(-)(>)(+)(<)(^)(-)(-))^(((-)(-)((-))^)^((([))^(.)(H)(e)(l)([)([)([)([)([))^(((]))^(o)(,)(W)(o)(])(])(])(])(])(v))^)^)^)^(((r)(l)(d))^((!)((v)(v)(v))^)^(((v)((v))^((_))^(-))^((([))^(])(v)(=)(|)(/)(*)()^(S)(*)(-)([)(])(v)(~)(%)($)(_)(=)(|)(-)([)(])(v)(/)(*)(S)(*)(~)(%)(-)([)(]))^)^)^(((v)(($))^)^(((_)((=))^((|))^(/))^(((*)((-))^)^(([)((])(v))^)^(((S))^(*)(~)(%)($)(_)(-)([))^)^)^(((])((v))^((=))^(|))^(((/)((*))^)^((S)((-)(>))^)^(((+))^(<)(^)(-)(-))^)^)^(((-)((-))^((-))^([))^(((.)((H))^)^((e)((l)(l))^)^(((o))^(,)( )(W)()(o)()()(r)(l)(d)(!))^)^)^(((*)^((*)^)^((*)^)^(*)^)^(((*)^(()^)^)^((*)^((*)^(*)^)^)^(((*)^)^(*)^(*)^(*)^()^(*)^(*)^(*)^(S)^(<)^($)(_))^)^)^(((=)((|))^((-))^([))^(((])((v))^)^((/)((*)(S))^)^(((*))^(~)(%)(-)([)(])(v)($)(_)(=)(|)(/)(*)(-)([))^)^)^((])((v)(S)(*))^)^(((~)((%))^(($))^(_))^(((-)(([))^)^((])((v)(=))^)^(((|))^(/)(*)(S)(*)(-)([)(])(v)(~)(%)($)(_)(=)(-)(>)(+)(<)(^)(-)(-)(-)(-))^)^)^(((-)(([))^((.))^(H))^(((e)((l))^)^(([)(([)([))^)^((([))^([)(])(o)(,)(W)(o)(])(])(])(])(])(v)(r)(l))^)^)^(((d)((!))^((v))^(v))^(((v)((v))^)^((v)((|)(-))^)^((([))^(])(v)(/)()^(*)(S)(*)(~)(%)(-)([)(])(v)($)(_)(=)(|))^)^)^(((/)((*))^((-))^([))^(((])((v))^)^((S)((*)(~))^)^(((%))^($)(_)(-)([)(])(v)(=)(|)(/)(*)(*))^)^)^(((*)((-))^(([))^(]))^(((v)((*))^)^((*)((*)(*))^)^(((*))^(*)(-)([))^)^)^)^

Here's a simplified version of it, with a bit of an explantion. From characters 503 through to 709 in the program.

(((-)((-))^((-))^([))^(((.)((H))^)^((e)((l)(l))^)^(((o))^(,)( )(W)()(o)()()(r)(l)(d)(!))^)^)^(((*)^((*)^)^((*)^)^(*)^)^(((*)^(()^)^)^((*)^((*)^(*)^)^)^(((*)^)^(*)^(*)^(*)^()^(*)^(*)^(*)^(S)^(<)^($)(_))^)^)^

Which essentially simplifies down to the following due to the ^'s. They put the top element of the stack back into the program repeatedly.

(-)(-)(-)([)(.)(H)(e)(l)(l)(o)(,)( )(W)()(o)()()(r)(l)(d)(!)***************S<($)(_)

From there we end up with a stack of

!:d:l:r:::o::W: :,:o:l:l:e:H:.:[:-:-:-:

The *'s concatenate the top element to the second element repeatedly and the S outputs it. The < causes the program to stop. The following are left on the stack. Of course the main program leaves a lot more.

.:[:-:-:-:

Tested here quite a bit:)

MickyT
  • 12.2k
  • 2
  • 26
  • 48