4.3BSD/usr/contrib/icon/book/11/genword.icn

procedure genword()
   static wchar
   local line, i, j
   initial wchar := &lcase ++ &ucase ++ '\'-'
   while line := read() do {
      i := 1
      while j := upto(wchar,line,i) do {
         i := many(wchar,line,j)
         suspend line[i:j]	# produce word
         }
      }
end