Go solution

Inspired By: Brad Fitzpatrick and Burke Libbey

As opposed to solution by @burke, this solution doesn't rely on global variables, and thus is safe for concurrent use by multiple goroutines.

As opposed to solution by @bradfitz, this solution doesn't terminate after the first call with arguments, it supports multiple arguments, and it supports non-string arguments.

http://play.golang.org/p/jhG5o6ytTH