This is only english _1 rottn 1 rottn 'testing' testing
Does not work with my alpha _1 rottn 1 rottn 'prófaþetta með íslenzkum stöfunum æÆöðÐþÞ' prófaþetta með Ãslenzkum stöfunum æÃöðÃþà 3 u: 'prófaþetta með íslenzkum stöfunum æÆöðÐþÞ' 112 114 195 179 102 97 195 190 101 116 116 97 32 109 101 195 176 32 195 173 115 108 101 110 122 107 117 109 32 115 116 195 182 102 117 110 117 109 32 195 166 195 134 195 182 195 176 195 144 195 190 195 158 3 u: 7 u: 'prófaþetta með íslenzkum stöfunum æÆöðÐþÞ' 112 114 243 102 97 254 101 116 116 97 32 109 101 240 32 237 115 108 101 110 122 107 117 109 32 115 116 246 102 117 110 117 109 32 230 198 246 240 208 254 222 # 3 u: 'prófaþetta með íslenzkum stöfunum æÆöðÐþÞ' 53 # 3 u: 7 u: 'prófaþetta með íslenzkum stöfunum æÆöðÐþÞ' 41 8 u: 4 u: 3 u: 7 u: 'prófaþetta með íslenzkum stöfunum æÆöðÐþÞ' prófaþetta með íslenzkum stöfunum æÆöðÐþÞ # 3 u: 7 u: 'aábcðdeéfghiíjklmnoópqrstuúvwxyýzþæö' 36 # 3 u: 7 u: 'AÁBCÐDEÉFGHIÍJKLMNOÓPQRSTUÚVWXYÝZÞÆÖ' 36 2011/12/23 Raul Miller <rauldmil...@gmail.com> > Here's another variation: > > rotn=: 1 :'{&((65 97 +/~ i.26) m&|.@[`[`]} i.256)&.(a.&i.)' > > 1 rotn 'testing' > uftujoh > 13 rotn 'testing' > grfgvat > 13 rotn 13 rotn 'testing' > testing > _1 rotn 1 rotn 'testing' > testing > > In this expression, each arbitrary constant is used only once: > > 26: letters in the alphabet > 65: 'A' > 97: 'a' > 256: the number of character codes > > I could replace 256 with #a. but I do not think that adds any clarity. > > That said... > rottn=: 1 :'{&((65 97 +/~ i.26) m&|.@u:@[`[`]} a.)&(3&u:)' > > -- > Raul > On Fri, Dec 23, 2011 at 11:27 AM, Raul Miller <rauldmil...@gmail.com> > wrote: > > Wait, bad idea... that rot13 only works because 13 is a factor of 26. > > > > Instead (and this is a fast bug fix, I have not thought much about > > more elegant forms, though several paths for rephrasing come to mind): > > > > rotN=: 1 :'{&((65 97 +/ m |. i.26) ((65 97 +/i.26)}) i.256)&.(a.&i.)' > > > > -- > > Raul > > > > On Fri, Dec 23, 2011 at 11:21 AM, Raul Miller <rauldmil...@gmail.com> > wrote: > >> Here's what I use for rot13: > >> > >> rot13=: {&((65 97+/~i.2 13) |.@[} i.256)&.(a.&i.) > >> > >> If I wanted to generalize that, I would probably go with: > >> > >> rotN=: 1 :'rot13=: {&((65 97+/~i.2,m) |.@[} i.256)&.(a.&i.)' > >> > >> 13 rotN 'testing' > >> grfgvat > >> 13 rotN rot13 'testing' > >> testing > >> > >> -- > >> Raul > >> > >> On Fri, Dec 23, 2011 at 11:00 AM, Lorenzo Costanzia di Costigliole > >> <lorenzo.costan...@gmail.com> wrote: > >>> NB. What is the most elegant way to rotate uppercase > >>> NB. and lowercase letters by n? ("rotation cipher") > >>> > >>> c2n=: a.&i. > >>> > >>> lc=: >&96 *. <&123 > >>> uc=: >&64 *. <& 91 > >>> > >>> s=: 'Btggn Rwgxhibph 2011 id iwt Y-Egdvgpbbxcv bpxaxcv axhi!' > >>> > >>> > >>> > >>> NB. I came up with those, but I think there’s still room for > improvement > >>> NB. (Isn't there something in the J-Phrases?) > >>> > >>> NB. uppercase -> 2, lowercase -> 1, else -> 0 > >>> cl=: +:@uc + lc > >>> cl`(] , ([: 26&| +&n)&.(-&97) ,: ([: 26&| +&n)&.(-&65))}&.c2n s > >>> > >>> ((] + ] ]`([: 26&| n + ])@.((0~:[)"0) [ - ]) (97&*@lc + 65&*@uc))&.c2n > s > >>> > >>> NB. Enumerate all possibilities > >>> |: ((] + ] (26 # ])`([: 26&| (i.26) + ])@.((0 ~: [)"0) [ - ]) (97&*@lc > >>> + 65&*@uc))&.c2n s > >>> > >>> NB. Thanks! > >>> ---------------------------------------------------------------------- > >>> For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm