Anonymous user
Changeable words: Difference between revisions
m
→{{header|REXX}}: moved the reading and filtering the dictionary to a subroutine.
m (→{{header|REXX}}: elided a duplicate filter for the words, changed whitespace, moved an assignment statement.) |
m (→{{header|REXX}}: moved the reading and filtering the dictionary to a subroutine.) |
||
Line 863:
if minL=='' | minL=="," then minL= 12 /*Not specified? Then use the default.*/
if iFID=='' | iFID=="," then iFID='unixdict.txt' /* " " " " " " */
wc= 0 /*WC: the word count of usable words.*/▼
do #=1 while lines(iFID)\==0 /*read each word in the file (word=X).*/▼
x= strip( linein( iFID) ) /*pick off a word from the input line. */▼
if length(x)<minL then iterate /*Is the word too short? Then skip it.*/▼
if \datatype(x, 'M') then iterate /* " " " not alphabetic? Skip it.*/▼
wc= wc+1; $.wc= x; upper x; @.x= $.wc /*bump word counter; save original case*/▼
end /*#*/ /* [↑] semaphore name is uppercased. */▼
say copies('─', 30) # "words ("wc 'usable words) in the dictionary file: ' iFID▼
abc= 'abcdefghijklmnopqrstuvwxyz'; upper abc /*alphabet ordered by frequency of use.*/
Labc= length(abc) /*the length of the alphabet to be used*/
finds= 0 /*count of the changeable words found.*/
do j=1 for
x= $.j; upper x /*get an uppercased version of the word*/
pad= left('', 9) /*PAD: used for indenting the output.*/▼
do k=1 for L; y= substr(x, k, 1) /*Y: the current letter being changed.*/
do c=1 for Labc /* [↓] change the Y letter to another.*/
?= substr(abc, c, 1) /*get a new char to replace one in word*/
if ?==y then iterate /*Is this the same char? Then use next*/
new= overlay(?, x, k); upper new
if @.new=='' then iterate /*
finds= finds + 1 /*bump count of changeable words found.*/
say
end /*c*/
end /*k*/
end /*j*/
say copies('─', 30) finds ' changeable words found with a minimum length of ' minL
/*──────────────────────────────────────────────────────────────────────────────────────*/
▲
upper x; @.x= $.n /*assign uppercased word ───► array. */
return</lang>
{{out|output|text= when using the default inputs:}}
<pre>
|