q / k4 (3? 5? 8?)
se for suficiente inserir o código e a entrada diretamente no REPL, é apenas asc
:
q)asc"Johnny walked the dog to the park."
`s#" .Jaaddeeeghhhkklnnoooprtttwy"
o `s#
é pouco de notação q que indica que a corda está em ordem de classificação (pode ser binário procurou, etc.). se for necessário, isso custa dois caracteres, perfazendo cinco:
q)`#asc"Johnny walked the dog to the park."
" .Jaaddeeeghhhkklnnoooprtttwy"
se você quiser que ele seja fornecido no stdin, é hora de mudar para o k4 (e nos livramos dele de `s#
graça), e é uma solução de oito caracteres:
x@<x:0:0
Johnny walked the dog to the park.
" .Jaaddeeeghhhkklnnoooprtttwy"
aquele, btw, funcionará como um arquivo de código exatamente como está (ainda com oito caracteres, pois q é bom por não ter a nova linha final em um arquivo de código). normalmente, haveria problemas com um banner de boas-vindas e com o REPL aberto, mas se você passar a entrada como herestring, tudo isso desaparecerá:
$ cat asc.k
x@<x:0:0
$ q asc.k<<<'Johnny walked the dog to the park.'
"\n .Jaaddeeeghhhkklnnoooprtttwy"
$
não tenho certeza de onde vem essa nova linha extra na saída ....