4.3BSD/usr/contrib/icon/book/f/gensubstr.icn

procedure gensubstr(s)
   local i
   suspend s[(i := 1 to *s):((i + 1) to (*s + 1))]
end