q / k4 (3? 5? 8?)
se è sufficiente inserire il codice e l'input direttamente nel REPL, è solo asc:
q)asc"Johnny walked the dog to the park."
`s#" .Jaaddeeeghhhkklnnoooprtttwy"
la `s#è bit q notazione che indica che la stringa è in modo ordinato (binaria può essere cercato, ecc). se deve andare, questo costa due personaggi, facendo cinque:
q)`#asc"Johnny walked the dog to the park."
" .Jaaddeeeghhhkklnnoooprtttwy"
se lo vuoi fornito su stdin, è tempo di passare a k4 (e ce ne liberiamo `s#gratuitamente), ed è una soluzione di otto caratteri:
x@<x:0:0
Johnny walked the dog to the park.
" .Jaaddeeeghhhkklnnoooprtttwy"
quello, tra l'altro, funzionerà come un file di codice esattamente come è (ancora otto caratteri, poiché q va bene non avendo l'ultima riga finale in un file di codice). normalmente ci sarebbero problemi con un banner di benvenuto e con il REPL che restava aperto, ma se si passa l'input come herestring, tutto ciò che va via:
$ cat asc.k
x@<x:0:0
$ q asc.k<<<'Johnny walked the dog to the park.'
"\n .Jaaddeeeghhhkklnnoooprtttwy"
$
non sono sicuro da dove provenga quella nuova riga aggiuntiva nell'output ....