# [Jelly], <s>74 </s> 65 [bytes] “ÆÇÐÑ÷øœ‘Ṭœṗ⁸ṙ©-¤4421œ?U0¦;"⁷,⁶ẋ⁵¤¤ṁ9¤ȮœS.®ß “9ɲcḟ#%⁴1t(ŀȷUCOw⁾»Ç Windows version running in a 6 line high cp-65001 console. There is a half a second (plus evaluation) pause between iterations: [![gif of output][1]][1] ### How? “9ɲcḟ#%⁴1t(ŀȷUCOw⁾»Ç - Main link: no arguments “9ɲcḟ#%⁴1t(ŀȷUCOw⁾» - compression of [d( Happy)+d( birthday)+d( Raff)+s(aele)+d( Ce)+d(cc)+s(o)] - d=dictionaryLookup, s=stringEncode. - = " Happy birthday Raffaele Cecco" Ç - call last link (1) as a monad “ÆÇÐÑ÷øœ‘Ṭœṗ⁸ṙ©-¤4421œ?U0¦;"⁷,⁶ẋ⁵¤¤ṁ9¤ȮœS.®ß - Link 1, rotate, print, recurse: string s ¤ - nilad followed by link(s) as a nilad: ⁸ - link's left argument (initially s) - - literal -1 ṙ - rotate left -1 (e.g. "blah" -> "hbla") © - copy to register and yield “ÆÇÐÑ÷øœ‘ - literal: [13,14,15,16,28,29,30] Ṭ - untruth: [0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1] œṗ - partition right at truthy indexes of left - chops up the rotated string into 8 - e.g. [" Happy birth",'d','a','y'," Raffaele Ce",'c','c','o']) 4421œ? - get the 4421st permutation of those items - e.g. [" Happy birth",'o','d','c','a','c','y'," Raffaele Ce"] ¦ - apply to indexes: 0 - 0 (right most) U - upend (e.g. " Raffaele Ce" -> "eC eleaffaR ") ¤ - nilad followed by link(s) as a nilad: ¤ - nilad followed by link(s) as a nilad: ¤ - nilad followed by link(s) as a nilad: ⁶ - literal space ⁵ - literal 10 ẋ - repeat: " " ⁷ - literal new line , - pair: ['\n'," "] 9 - literal 9 ṁ - mould like: ['\n'," ",'\n'," ",'\n'," ",'\n'," ",'\n'] " - zip with: ; - concatenation - e.g. [" Happy birth\n","o ","d\n","c ","a\n","c ","y\n","eC eleaffaR ","\n"]) Ȯ - print and yield . - literal 0.5 œS - after sleeping right seconds yield left ® - recall value from register (s rotated by 1) ß - call this link (1) with the same arity (as a monad) [Jelly]: https://github.com/DennisMitchell/jelly [bytes]: https://github.com/DennisMitchell/jelly/wiki/Code-page [1]: https://i.sstatic.net/H9cJd.gif