[ dup upper != ] is lower? ( c --> b ) [ dup lower != ] is upper? ( c --> b ) [ swap $ "" unrot witheach [ dup lower? iff [ over + dup lower? not if [ 26 - ] ] else [ dup upper? if [ over + dup upper? not if [ 26 - ] ] ] rot swap join swap ] drop ] is caesar ( $ --> $ ) [ 26 swap - ] is decode ( n --> n ) $ "Fere libenter homines id quod volunt credunt." dup echo$ cr 23 caesar dup echo$ cr 23 decode caesar echo$ cr