“Ŀo‘’FQỌµḟ;¹V
Essayez-le en ligne! ou exécutez les dix premiers programmes .
Contexte
Jelly a plusieurs types de littéraux de chaîne; tous commencent par un “. Si le littéral en contient plusieurs “, un tableau de chaînes est renvoyé et “sépare les chaînes les unes des autres.
Par exemple, les “abc“def”rendements ['abc', 'def'].
Selon le dernier caractère du littéral (n'importe ”«»‘’lequel, où «n'est actuellement pas implémenté), on peut choisir entre les différents types de littéraux. Pour ‘, nous obtenons les points de code dans la page de codes de Jelly au lieu des caractères Unicode correspondants.
Par exemple, les “abc“def‘rendements [[97, 98, 99], [100, 101, 102]].
Les littéraux des trois premiers programmes correspondent aux tableaux de points de code suivants.
“Ŀo‘ -> [199, 111]
““ĿĿoo‘ -> [[], [199, 199, 111, 111]]
“““ĿĿĿooo‘ -> [[], [], [199, 199, 199, 111, 111, 111]]
Comment ça marche ( n = 3 )
“““ĿĿĿooo‘‘‘’’’FFFQQQỌỌỌµµµḟḟḟ;;;¹¹¹VVV Main link. Implicit argument: 0
“““ĿĿĿooo‘ Yield the 2D array
[[], [], [199, 199, 199, 111, 111, 111]].
‘‘ Increment twice, yielding
[[], [], [201, 201, 201, 113, 113, 113]].
’’’ Decrement thrice, yielding
[[], [], [198, 198, 198, 110, 110, 110]].
F Flatten, yielding
[198, 198, 198, 110, 110, 110].
FF Twice more. Does nothing.
Q Unique; yield [198, 110].
QQ Twice more. Does nothing.
Ọ Unordinal; convert the Unicode code points
198 and 110 to 'Æ' and 'n'.
ỌỌ Twice more. Does nothing.
µµµ Begin three monadic chains, all with
argument s := "Æn".
ḟ Filter-false; remove the characters of s
from s, yielding "".
ḟḟ Twice more. Does nothing.
;;;¹ Concatenate with s three times, yielding
"ÆnÆnÆn".
¹¹ Identity function. Does nothing.
V Eval the resulting Jelly code, i.e.,
call the next-prime atom thrice, with
initial implicit argument 0.
VV Eval two more times. This is a no-op
on integers.