RosettaCodeData/Task/Hex-words/Quackery/hex-words.quackery
2023-07-01 13:44:08 -04:00

55 lines
1.1 KiB
Text

[ 1 - 9 mod 1+ ] is digitalroot ( n --> n )
[ 0 swap witheach
[ bit | ]
0 swap
[ dup while
tuck 1 & +
swap 1 >>
again ]
drop ] is uniques ( $ --> n )
[ tuck space swap of
join
swap split drop echo$ ] is lecho$ ( $ n --> )
$ 'rosetta/unixdict.txt' sharefile drop
nest$
[] swap witheach
[ dup size 4 < iff drop done
true over witheach
[ char a char g within
not if [ conclude not ] ]
iff [ nested join ]
else drop ]
16 base put
[] swap witheach
[ dup dip nested
$->n drop join
nested join ]
base release
[] swap witheach
[ dup 1 peek
digitalroot
join nested join ]
dup
sortwith [ 2 peek swap 2 peek < ]
witheach
[ unpack echo sp
swap 6 lecho$
sp echo cr ]
dup size echo say " words"
cr cr
[] swap witheach
[ dup 0 peek
uniques 4 < iff
drop
else [ nested join ] ]
sortwith [ 1 peek swap 1 peek > ]
dup
witheach
[ unpack echo sp
swap 6 lecho$
sp echo cr ]
size echo say " words"