gen-sym
REBOL [ Title: "Unique symbol generator" ] gen-sym-ctx: context [ prefix: "&" counter: 0 clear: does [counter: 0] set-prefix: func [value] [prefix: form value] set 'gen-sym does [ counter: counter + 1 to word! join prefix counter ] ] repeat i 5 [print gen-sym] gen-sym-ctx/set-prefix 'G gen-sym-ctx/clear repeat i 5 [print gen-sym]