Hex words: Difference between revisions

Add Factor
m (→‎{{header|Raku}}: remove interim variable, some unnecessary punctuation)
(Add Factor)
Line 12:
Also filter out all such words which contain at least '''4''' distinct letters and display the same statistics but in decreasing order of decimal equivalent together with their total count.
<br><br>
 
=={{header|Factor}}==
{{works with|Factor|0.99 2021-06-02}}
<lang factor>USING: formatting io io.encodings.ascii io.files kernel literals
math math.parser prettyprint sequences sets sorting ;
 
CONSTANT: words $[
"unixdict.txt" ascii file-lines
[ length 3 > ] filter
[ "abcdef" subset? ] filter
]
 
: droot ( m -- n ) 1 - 9 mod 1 + ;
 
: info. ( str -- ) dup hex> dup droot "%-8s-> %-10d-> %d\n" printf ;
 
: info-by ( quot ? -- )
[ sort-with ] [ inv-sort-with ] if [ length ] keep
[ info. ] each pprint ; inline
 
words [ hex> droot ] t info-by
" hex words with 4 or more letters found." print nl
 
words [ members length 3 > ] filter [ hex> ] f info-by
" such words found which contain 4 or more different digits." print
</lang>
{{out}}
<pre>
ababa -> 703162 -> 1
abbe -> 43966 -> 1
dada -> 56026 -> 1
deaf -> 57007 -> 1
decade -> 14600926 -> 1
cede -> 52958 -> 2
feed -> 65261 -> 2
abed -> 44013 -> 3
added -> 712173 -> 3
bade -> 47838 -> 3
beebe -> 782014 -> 4
decca -> 912586 -> 4
dade -> 56030 -> 5
bead -> 48813 -> 6
deface -> 14613198 -> 6
babe -> 47806 -> 7
fade -> 64222 -> 7
dead -> 57005 -> 8
efface -> 15727310 -> 8
facade -> 16435934 -> 8
accede -> 11325150 -> 9
beef -> 48879 -> 9
cafe -> 51966 -> 9
dacca -> 896202 -> 9
deed -> 57069 -> 9
face -> 64206 -> 9
26 hex words with 4 or more letters found.
 
facade -> 16435934 -> 8
efface -> 15727310 -> 8
deface -> 14613198 -> 6
decade -> 14600926 -> 1
accede -> 11325150 -> 9
decca -> 912586 -> 4
fade -> 64222 -> 7
face -> 64206 -> 9
deaf -> 57007 -> 1
cafe -> 51966 -> 9
bead -> 48813 -> 6
bade -> 47838 -> 3
abed -> 44013 -> 3
13 such words found which contain 4 or more different digits.
</pre>
 
=={{header|Raku}}==
1,827

edits