Just for fun, a GA in Elisp.