4.3BSD/usr/contrib/icon/port/suspend2.icn

#  This program tests rt/suspend.s

procedure main()
   local line, alpha, n
   alpha := "abcd"
   n := 3
   write(meander(alpha,n))
end

procedure meander(alpha,n)
   local result, t, i, c, k
   i := k := *alpha
   t := n - 1
   result := repl(alpha[1],t)
   while c := alpha[i] do {
      if find(result[-t:0] || c,result)
      then i -:= 1
      else {result ||:= c; i := k}
      }
   return result
end