1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-10 05:50:26 +02:00

deprecate `collect'

* module/ice-9/boot-9.scm:
* module/ice-9/deprecated.scm (collect): Deprecate, and fix to ensure
  sequential collection.
This commit is contained in:
Andy Wingo 2010-06-11 13:24:14 +02:00
parent 122f296ddc
commit 5c0450b249
2 changed files with 20 additions and 14 deletions

View file

@ -2837,19 +2837,6 @@ module '(ice-9 q) '(make-q q-length))}."
;;; {collect}
;;;
;;; Similar to `begin' but returns a list of the results of all constituent
;;; forms instead of the result of the last form.
;;; (The definition relies on the current left-to-right
;;; order of evaluation of operands in applications.)
;;;
(defmacro collect forms
(cons 'list forms))
;;; {While}
;;;
;;; with `continue' and `break'.

View file

@ -49,7 +49,8 @@
get-option
for-next-option
display-usage-report
transform-usage-lambda)
transform-usage-lambda
collect)
#:replace (module-ref-submodule module-define-submodule!))
@ -548,3 +549,21 @@ better yet, use the repl from `(system repl repl)'.")
(lambda (%opt %arg %new-argv)
(case %opt
,@ transmogrified-cases))))))))
;;; {collect}
;;;
;;; Similar to `begin' but returns a list of the results of all constituent
;;; forms instead of the result of the last form.
;;;
(define-syntax collect
(lambda (x)
(issue-deprecation-warning
"`collect' is deprecated. Define it yourself.")
(syntax-case x ()
((_) #''())
((_ x x* ...)
#''(let ((val x))
(cons val (collect x* ...)))))))