MGS [2003/04/04] - I wanted a way to cache idle commands i.e. to be able to schedule the same command multiple times (before the event loop is re-entered), and then have the command run only once. Following Darren New's code snippet, I came up with this simple solution:
proc idle {args} { eval after cancel $args return [eval after idle $args] }