diff options
author | Andy Wingo <wingo@pobox.com> | 2011-09-02 11:36:14 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2011-09-02 11:36:14 +0200 |
commit | 0c65f52c6d45f60e197fad7162d05c0fce89e817 (patch) | |
tree | 36b801d56064c1686befe9c3de561ade6cd6e2fa /module/texinfo.scm | |
parent | 1bbe0a631c4e72fffc033cb4f83eba7252ce3c9c (diff) | |
download | guile-0c65f52c6d45f60e197fad7162d05c0fce89e817.tar.gz |
more define-syntax-rule usage
* module/ice-9/boot-9.scm:
* module/ice-9/control.scm:
* module/ice-9/futures.scm:
* module/ice-9/optargs.scm:
* module/ice-9/poll.scm:
* module/ice-9/receive.scm:
* module/ice-9/threads.scm:
* module/ice-9/vlist.scm:
* module/language/assembly/compile-bytecode.scm:
* module/language/ecmascript/compile-tree-il.scm:
* module/language/tree-il.scm:
* module/oop/goops.scm:
* module/oop/goops/simple.scm:
* module/oop/goops/stklos.scm:
* module/srfi/srfi-1.scm:
* module/srfi/srfi-35.scm:
* module/srfi/srfi-39.scm:
* module/srfi/srfi-45.scm:
* module/srfi/srfi-67/compare.scm:
* module/sxml/match.scm:
* module/system/repl/error-handling.scm:
* module/system/repl/repl.scm:
* module/system/vm/inspect.scm:
* module/texinfo.scm:
* module/web/server.scm: Use define-syntax-rule, where it makes sense.
Diffstat (limited to 'module/texinfo.scm')
-rw-r--r-- | module/texinfo.scm | 20 |
1 files changed, 1 insertions, 19 deletions
diff --git a/module/texinfo.scm b/module/texinfo.scm index 970895ff6..8798eb3c1 100644 --- a/module/texinfo.scm +++ b/module/texinfo.scm @@ -77,6 +77,7 @@ #:use-module (sxml transform) #:use-module (sxml ssax input-parse) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-11) #:use-module (srfi srfi-13) #:export (call-with-file-and-dir texi-command-specs @@ -103,25 +104,6 @@ files by relative path name." (call-with-input-file (basename filename) proc)) (lambda () (chdir current-dir))))) -;; Define this version here, because (srfi srfi-11)'s definition uses -;; syntax-rules, which is really damn slow -(define-macro (let*-values bindings . body) - (if (null? bindings) (cons 'begin body) - (apply - (lambda (vars initializer) - (let ((cont - (cons 'let*-values - (cons (cdr bindings) body)))) - (cond - ((not (pair? vars)) ; regular let case, a single var - `(let ((,vars ,initializer)) ,cont)) - ((null? (cdr vars)) ; single var, see the prev case - `(let ((,(car vars) ,initializer)) ,cont)) - (else ; the most generic case - `(call-with-values (lambda () ,initializer) - (lambda ,vars ,cont)))))) - (car bindings)))) - ;;======================================================================== ;; Reflection on the XML vocabulary |