Mercurial > hg > xemacs-beta
comparison lisp/cl.el @ 404:2f8bb876ab1d r21-2-32
Import from CVS: tag r21-2-32
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:16:07 +0200 |
parents | 74fd4e045ea6 |
children | de805c49cfc1 |
comparison
equal
deleted
inserted
replaced
403:9f011ab08d48 | 404:2f8bb876ab1d |
---|---|
315 (while (>= (decf i) 0) (setq v (+ (* v 3) (aref time i)))) | 315 (while (>= (decf i) 0) (setq v (+ (* v 3) (aref time i)))) |
316 v)) | 316 v)) |
317 | 317 |
318 (defvar *gensym-counter* (* (logand (cl-random-time) 1023) 100)) | 318 (defvar *gensym-counter* (* (logand (cl-random-time) 1023) 100)) |
319 | 319 |
320 (defun gensym (&optional arg) | |
321 "Generate a new uninterned symbol. | |
322 The name is made by appending a number to PREFIX, default \"G\"." | |
323 (let ((prefix (if (stringp arg) arg "G")) | |
324 (num (if (integerp arg) arg | |
325 (prog1 *gensym-counter* | |
326 (setq *gensym-counter* (1+ *gensym-counter*)))))) | |
327 (make-symbol (format "%s%d" prefix num)))) | |
328 | |
329 (defun gentemp (&optional arg) | |
330 "Generate a new interned symbol with a unique name. | |
331 The name is made by appending a number to PREFIX, default \"G\"." | |
332 (let ((prefix (if (stringp arg) arg "G")) | |
333 name) | |
334 (while (intern-soft (setq name (format "%s%d" prefix *gensym-counter*))) | |
335 (setq *gensym-counter* (1+ *gensym-counter*))) | |
336 (intern name))) | |
320 | 337 |
321 ;;; Numbers. | 338 ;;; Numbers. |
322 | 339 |
323 (defun floatp-safe (x) | 340 (defun floatp-safe (x) |
324 "Return t if OBJECT is a floating point number. | 341 "Return t if OBJECT is a floating point number. |