q / k4 (3? 5? 8?)
если достаточно ввести код и ввод непосредственно в REPL, это просто asc:
q)asc"Johnny walked the dog to the park."
`s#" .Jaaddeeeghhhkklnnoooprtttwy"
`s#является немного д обозначений , что указывает на то, что строка находится в отсортированном порядке (может быть двоичным поиск, и т.д.). если он должен идти, то стоит два символа, получая пять:
q)`#asc"Johnny walked the dog to the park."
" .Jaaddeeeghhhkklnnoooprtttwy"
если вы хотите, чтобы он был предоставлен в stdin, пришло время переключиться на k4 (и мы избавились от него `s#бесплатно), и это решение из восьми символов:
x@<x:0:0
Johnny walked the dog to the park.
" .Jaaddeeeghhhkklnnoooprtttwy"
этот, кстати, будет работать как файл кода точно так же, как есть (по-прежнему восемь символов, так как q хорошо, если в кодовом файле нет последней новой строки). обычно бывают проблемы с приветственным баннером и с открытым REPL, но если вы передадите входные данные в виде строки, все это исчезнет:
$ cat asc.k
x@<x:0:0
$ q asc.k<<<'Johnny walked the dog to the park.'
"\n .Jaaddeeeghhhkklnnoooprtttwy"
$
на самом деле не уверен, откуда взялся этот дополнительный символ новой строки ....