Find words with alternating vowels and consonants: Difference between revisions

Added Forth solution
m (→‎{{header|Phix}}: added syntax colouring the hard way)
(Added Forth solution)
Line 958:
"verisimilitude"
}
</pre>
 
=={{header|Forth}}==
{{works with|Gforth}}
<lang forth>: vowel? ( c -- ? )
case
'a' of true endof
'e' of true endof
'i' of true endof
'o' of true endof
'u' of true endof
0 swap
endcase ;
 
: alternating-vowels-and-consonants { addr len -- ? }
len 9 <= if false exit then
len 1 do
addr i + c@ vowel? addr i 1- + c@ vowel? = if
unloop false exit
then
loop true ;
 
256 constant max-line
 
: main
0 0 { count fd-in }
s" unixdict.txt" r/o open-file throw to fd-in
begin
here max-line fd-in read-line throw
while
here swap 2dup alternating-vowels-and-consonants if
count 1+ to count
count 2 .r ." : " type cr
else
2drop
then
repeat
drop
fd-in close-file throw ;
 
main
bye</lang>
 
{{out}}
<pre style="height: 30em">
1: aboriginal
2: apologetic
3: bimolecular
4: borosilicate
5: calorimeter
6: capacitate
7: capacitive
8: capitoline
9: capitulate
10: caricature
11: colatitude
12: coloratura
13: colorimeter
14: debilitate
15: decelerate
16: decolonize
17: definitive
18: degenerate
19: deliberate
20: demodulate
21: denominate
22: denotative
23: deregulate
24: desiderata
25: desideratum
26: dilapidate
27: diminutive
28: epigenetic
29: facilitate
30: hemosiderin
31: heretofore
32: hexadecimal
33: homogenate
34: inoperative
35: judicature
36: latitudinal
37: legitimate
38: lepidolite
39: literature
40: locomotive
41: manipulate
42: metabolite
43: nicotinamide
44: oratorical
45: paragonite
46: pejorative
47: peridotite
48: peripatetic
49: polarimeter
50: recitative
51: recuperate
52: rehabilitate
53: rejuvenate
54: remunerate
55: repetitive
56: reticulate
57: savonarola
58: similitude
59: solicitude
60: tananarive
61: telekinesis
62: teratogenic
63: topologize
64: unilateral
65: unimodular
66: uninominal
67: verisimilitude
</pre>
 
1,777

edits