modern friendly loop structures for Emacs lisp