ABC words: Difference between revisions

Added Forth solution
(Added Forth solution)
Line 836:
prefabricate quarterback razorback roadblock sabbatical
snapback strabismic syllabic tabernacle tablecloth
</pre>
 
=={{header|Forth}}==
{{works with|Gforth}}
<lang forth>: abc-word? ( addr u -- ? )
false false { a b }
0 do
dup c@ case
'a' of true to a endof
'b' of a invert if unloop drop false exit then true to b endof
'c' of unloop drop b exit endof
endcase
1+
loop
drop
false ;
 
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 abc-word? 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>
1: aback
2: abacus
3: abc
4: abdicate
5: abduct
6: abeyance
7: abject
8: abreact
9: abscess
10: abscissa
11: abscissae
12: absence
13: abstract
14: abstracter
15: abstractor
16: adiabatic
17: aerobacter
18: aerobic
19: albacore
20: alberich
21: albrecht
22: algebraic
23: alphabetic
24: ambiance
25: ambuscade
26: aminobenzoic
27: anaerobic
28: arabic
29: athabascan
30: auerbach
31: diabetic
32: diabolic
33: drawback
34: fabric
35: fabricate
36: flashback
37: halfback
38: iambic
39: lampblack
40: leatherback
41: metabolic
42: nabisco
43: paperback
44: parabolic
45: playback
46: prefabricate
47: quarterback
48: razorback
49: roadblock
50: sabbatical
51: snapback
52: strabismic
53: syllabic
54: tabernacle
55: tablecloth
</pre>
 
1,777

edits