procedure words(k) local wchar, wordlist, line, i, j wchar := &lcase ++ &ucase ++ '\'-' wordlist := [] while line := read() do { i := 1 while j := upto(wchar,line,i) do { i := many(wchar,line,j) put(wordlist,line[i:j]) if *wordlist = k then break break } } return wordlist end