Playfair cipher: Difference between revisions

Content added Content deleted
(→‎{{header|J}}: handle strings with multiple doubles)
(→‎{{header|J}}: tacit version of dedouble)
Line 751: Line 751:


restrict=: ] -. -.~
restrict=: ] -. -.~
getidx=: 1 >:@+:@i.~ =/"1@(_2 ]\ ]) NB. index of digraph with repeated letter
dedouble=: verb define
splitDigraph=: ({. , 'X' , }.)~ getidx NB. split first digraphs with repeated letter
while. +./ msk=. =/"1 ] _2 ]\ y do.
dedouble=: dtb@:(>:@# {. splitDigraph)^:_ NB. split digraphs until until no change
y =. (1 2 p. {. I. msk) ({. , 'X' , }.) y
end.
y
)


choose 'Q'
choose 'Q'