Jump to content

ABC words: Difference between revisions

1,364 bytes added ,  3 years ago
Add BCPL
(Add C++)
(Add BCPL)
Line 188:
prefabricate quarterback razorback roadblock sabbatical
snapback strabismic syllabic tabernacle tablecloth</pre>
 
=={{header|BCPL}}==
<lang bcpl>get "libhdr"
 
let find(s, c) = valof
$( for i=1 to s%0
if s%i=c then resultis i
resultis -1
$)
 
let match(word) = valof
$( let a = find(word, 'a')
let b = find(word, 'b')
let c = find(word, 'c')
resultis a ~= -1 & b ~= -1 & c ~= -1 & a<b & b<c
$)
 
let read(word) = valof
$( let ch = ?
word%0 := 0
$( ch := rdch()
if ch = endstreamch then resultis false
word%0 := word%0 + 1
word%(word%0) := ch
$) repeatuntil ch = '*N'
resultis true
$)
 
let start() be
$( let word = vec 63
let file = findinput("unixdict.txt")
test file = 0 then
writes("Cannot open unixdict.txt*N")
else
$( selectinput(file)
while read(word) if match(word) do writes(word)
endread()
$)
$)</lang>
{{out}}
<pre style='height:50ex'>aback
abacus
abc
abdicate
abduct
abeyance
abject
abreact
abscess
abscissa
abscissae
absence
abstract
abstracter
abstractor
adiabatic
aerobacter
aerobic
albacore
alberich
albrecht
algebraic
alphabetic
ambiance
ambuscade
aminobenzoic
anaerobic
arabic
athabascan
auerbach
diabetic
diabolic
drawback
fabric
fabricate
flashback
halfback
iambic
lampblack
leatherback
metabolic
nabisco
paperback
parabolic
playback
prefabricate
quarterback
razorback
roadblock
sabbatical
snapback
strabismic
syllabic
tabernacle
tablecloth</pre>
 
=={{header|C}}==
2,120

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.