q / k4 (3? 5? 8?)
코드와 입력을 REPL에 직접 입력하기에 충분하다면 다음과 asc같습니다.
q)asc"Johnny walked the dog to the park."
`s#" .Jaaddeeeghhhkklnnoooprtttwy"
가 `s#있는 문자열 (바이너리 검색 등을 할 수있는) 정렬 된 순서임을 나타낸다 Q 표기 비트. 그것이 가야한다면, 그것은 2 자의 비용이 들며 5를 만듭니다.
q)`#asc"Johnny walked the dog to the park."
" .Jaaddeeeghhhkklnnoooprtttwy"
stdin에 제공하려면 k4로 전환해야합니다 (그리고 우리 `s#는 무료로 제거합니다) .8 자 솔루션입니다.
x@<x:0:0
Johnny walked the dog to the park.
" .Jaaddeeeghhhkklnnoooprtttwy"
그 중 하나 인 btw는 그대로 코드 파일로 작동합니다 (여전히 8 자, q는 코드 파일에 마지막 개행 문자가 없기 때문에 괜찮습니다). 일반적으로 시작 배너 및 REPL이 열린 상태로 문제가 발생하지만 입력을 herestring으로 전달하면 모든 것이 사라집니다.
$ cat asc.k
x@<x:0:0
$ q asc.k<<<'Johnny walked the dog to the park.'
"\n .Jaaddeeeghhhkklnnoooprtttwy"
$
실제로 출력의 추가 줄 바꿈이 어디에서 오는지 확실하지 않습니다.