q / k4 (3? 5? 8?)
si es suficiente ingresar el código y la entrada directamente en el REPL, es solo asc:
q)asc"Johnny walked the dog to the park."
`s#" .Jaaddeeeghhhkklnnoooprtttwy"
el `s#es q poco de notación que indica que la cadena está ordenada (puede ser binaria búsquedas, etc.). si tiene que ir, eso cuesta dos caracteres, haciendo cinco:
q)`#asc"Johnny walked the dog to the park."
" .Jaaddeeeghhhkklnnoooprtttwy"
si desea que se proporcione en stdin, es hora de cambiar a k4 (y nos deshacemos de él `s#de forma gratuita), y es una solución de ocho caracteres:
x@<x:0:0
Johnny walked the dog to the park.
" .Jaaddeeeghhhkklnnoooprtttwy"
ese, por cierto, funcionará como un archivo de código exactamente como es (aún ocho caracteres, ya que q está bien con no tener la nueva línea final en un archivo de código). normalmente habría problemas con un banner de bienvenida y con el REPL permaneciendo abierto, pero si pasa la entrada como una herejía, todo eso desaparece:
$ cat asc.k
x@<x:0:0
$ q asc.k<<<'Johnny walked the dog to the park.'
"\n .Jaaddeeeghhhkklnnoooprtttwy"
$
no estoy seguro de dónde proviene esa nueva línea adicional en la salida ...