diff --git a/module/ice-9/boot-9.scm b/module/ice-9/boot-9.scm index 287ad3aea..c26a7e678 100644 --- a/module/ice-9/boot-9.scm +++ b/module/ice-9/boot-9.scm @@ -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'. diff --git a/module/ice-9/deprecated.scm b/module/ice-9/deprecated.scm index 138f20ae7..7aeda3424 100644 --- a/module/ice-9/deprecated.scm +++ b/module/ice-9/deprecated.scm @@ -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* ...)))))))