“¡Kịy<⁷ẊṘṘsṁñAỵḋẇ,ẇʂI»Ṅø“¢ƈṫ(Ɲ¬÷Ø“¡ṣƓ»µɠŒteḊȧKȯ“TḲj/Ẇi¤cecṡĿt⁺ƘNƁ⁻»;”.
Jelly's code-page is equal to ASCII in the range ' '
, 0x20
, through to '~'
, 0x7e
, inclusive so the lack of any of worldWORLD
in the code above suffices (note: ẇȯṘĿḊ
are not woRLD
or equivalent bytes.)
Try it online!
This took a little fiddling to avoid the forbidden bytes:
all the naive string compressions contained illegal characters;
finding the first index of a sublist within another is performed with the w
atom;
finding the length of a list (for chopping and measuring to replace w
) uses L
- something I considered was summing the indices with JS
(triangle(9)=45), I ended up using a list of strings and a separate trailing period to kill three birds with one stone [sic], allowing a dequeue-flatten-dequeue chain, ḊFḊ
, to pick out the word World
, this can be further shortened by post-joining the list with the space using Ḳ
, allowing for a simple dequeue, Ḋ
to be used instead saving another byte.
Adding the trailing period to whichever response is output as a single action also allowed compression without illegal bytes.
For some reason, the word yes
is not in Jelly's dictionary, yet even though compressing Ah, yes.
is the same length as the raw string, having the compression as a list of strings ['Ah, yes.',' World']
(“¢ƈṫ(Ɲ¬÷Ø“¥ḄḞ»
) is shorter by two bytes than concatenating (“Ah, yes.”;“¥ḄḞ»
), the third bird.
For the first message I compressed Hell
as a word and prepended the string '...' with an 'o' to avoid the forbidden bytes.
Commented code:
W: “¡Kịy<⁷ẊṘṘsṁñAỵḋẇ,ẇʂI» - compressed string "Hello... eh, whom should I greet?"
R: “¢ƈṫ(Ɲ¬÷Ø“¡ṣƓ» - compressed list of strings ["Ah, yes.","World"]
D: “TḲj/Ẇi¤cecṡĿt⁺ƘNƁ⁻» - compressed string "No. That isn't what I meant"
WṄøRµɠŒteḊȧKȯD;”. - Main link: no arguments
W - "Hello... eh, whom should I greet?"
Ṅ - print and yield
ø - niladic chain separation, no input to the following
R - ["Ah, yes.","World"]
µ - monadic chain separation, call that L
ɠ - read a line from STDIN
Œt - title-case it (e.g. "wOrLd" -> "World")
Ḋ - dequeue L: ["World"]
e - exists in? (0 or 1)
ȧ - and L (0 or ["Ah, yes.","World"])
K - join with spaces (0 or "Ah, yes. World")
D - "No. That isn't what I meant"
ȯ - or ("No. That isn't what I meant" or "Ah, yes. World")
”. - literal '.'
; - concatenate ("No. That isn't what I meant." or "Ah, yes. World.")
print string; input(); isequal? string1 : string2
. It panders to golfing languages with those builtins not assigned toworld
and with short names. \$\endgroup\$