append-map rather than mapappend
[bpt/guile.git] / module / rnrs.scm
index 5df53fe..a132c53 100644 (file)
@@ -1,6 +1,6 @@
 ;;; rnrs.scm --- The R6RS composite library
 
-;;      Copyright (C) 2010 Free Software Foundation, Inc.
+;;      Copyright (C) 2010, 2011 Free Software Foundation, Inc.
 ;;
 ;; This library is free software; you can redistribute it and/or
 ;; modify it under the terms of the GNU Lesser General Public
 
          boolean? symbol? char? vector? null? pair? number? string? procedure?
          define define-syntax syntax-rules lambda let let* let-values
-         let*-values letrec begin quote lambda if set! cond case or and not
-         eqv? equal? eq? + - * / max min abs numerator denominator gcd lcm 
-         floor ceiling truncate round rationalize real-part imag-part 
+         let*-values letrec letrec* begin quote lambda if set! cond case or 
+          and not eqv? equal? eq? + - * / max min abs numerator denominator gcd
+          lcm floor ceiling truncate round rationalize real-part imag-part 
          make-rectangular angle div mod div-and-mod div0 mod0 div0-and-mod0
          expt exact-integer-sqrt sqrt exp log sin cos tan asin acos atan 
          make-polar magnitude angle complex? real? rational? integer? exact? 
-         inexact? real-valued? rational-valued? integer-values? zero? 
+         inexact? real-valued? rational-valued? integer-valued? zero? 
          positive? negative? odd? even? nan? finite? infinite? exact inexact =
-         < > <= >= number->string string->number cons car cdr caar cadr cdar 
-         cddr caaar caadr cadar cdaar caddr cdadr cddar cdddr caaaar caaadr 
-         caadar cadaar cdaaar cddaar cdadar cdaadr cadadr caaddr caddar cadddr
-         cdaddr cddadr cdddar cddddr list? list length append reverse 
+         < > <= >= number->string string->number boolean=? cons car cdr caar 
+          cadr cdar cddr caaar caadr cadar cdaar caddr cdadr cddar cdddr caaaar
+          caaadr caadar cadaar cdaaar cddaar cdadar cdaadr cadadr caaddr caddar
+          cadddr cdaddr cddadr cdddar cddddr list? list length append reverse 
          list-tail list-ref map for-each symbol->string string->symbol symbol=?
          char->integer integer->char char=? char<? char>? char<=? char>=?
          make-string string string-length string-ref string=? string<? string>?
 
          ;; (rnrs io ports)
 
-         eof-object? port? input-port? output-port? eof-object port-transcoder
-         binary-port? transcoded-port port-position set-port-position!
-         port-has-port-position? port-has-set-port-position!? call-with-port
+         file-options buffer-mode buffer-mode?
+         eol-style native-eol-style error-handling-mode
+         make-transcoder transcoder-codec transcoder-eol-style
+          transcoder-error-handling-mode native-transcoder
+         latin-1-codec utf-8-codec utf-16-codec
+         
+         eof-object? port? input-port? output-port? eof-object port-eof?
+         port-transcoder
+         binary-port? textual-port? transcoded-port
+         port-position set-port-position!
+         port-has-port-position? port-has-set-port-position!?
+          close-port call-with-port
          open-bytevector-input-port make-custom-binary-input-port get-u8 
          lookahead-u8 get-bytevector-n get-bytevector-n! get-bytevector-some 
          get-bytevector-all open-bytevector-output-port
          make-custom-binary-output-port put-u8 put-bytevector
           open-string-input-port open-string-output-port
-
+          call-with-bytevector-output-port
+          call-with-string-output-port
+          latin-1-codec utf-8-codec utf-16-codec
+          open-file-input-port open-file-output-port open-file-input/output-port
+          make-custom-textual-output-port
+          call-with-string-output-port
+         flush-output-port put-string
+          get-char get-datum get-line get-string-all get-string-n get-string-n!
+          lookahead-char
+          put-char put-datum put-string
+          standard-input-port standard-output-port standard-error-port
+          
          ;; (rnrs io simple)
          
          call-with-input-file call-with-output-file current-input-port
 
          ;; (rnrs syntax-case)
 
-         make-variable-transformer syntax syntax-case identifier?
-         bound-identifier=? free-identifier=? syntax->datum datum->syntax
-         generate-temporaries with-syntax quasisyntax unsyntax
-         unsyntax-splicing syntax-violation)
+         make-variable-transformer syntax
+          ;; Until the deprecated support for a unified modules and
+          ;; bindings namespace is removed, we need to manually resolve
+          ;; a conflict between two bindings: that of the (rnrs
+          ;; syntax-case) module, and the imported `syntax-case'
+          ;; binding. We do so here and below by renaming the macro
+          ;; import.
+          (rename (syntax-case-hack syntax-case))
+          identifier?  bound-identifier=? free-identifier=?
+          syntax->datum datum->syntax generate-temporaries with-syntax
+          quasisyntax unsyntax unsyntax-splicing syntax-violation
+
+         ;; (rnrs unicode)
+         
+         char-upcase char-downcase char-titlecase char-foldcase
+         char-ci=? char-ci<? char-ci>? char-ci<=? char-ci>=?
+         char-alphabetic? char-numeric? char-whitespace? char-upper-case?
+         char-lower-case? char-title-case? char-general-category
+         string-upcase string-downcase string-titlecase string-foldcase
+         string-ci=? string-ci<? string-ci>? string-ci<=? string-ci>=?
+         string-normalize-nfd string-normalize-nfkd string-normalize-nfc
+         string-normalize-nfkc)
 
   (import (rnrs arithmetic bitwise (6))
          (rnrs arithmetic fixnums (6))
          (rnrs control (6))
          (rnrs enums (6))
          (rnrs exceptions (6))
-         (rnrs files (6))
+
+          (rnrs files (6))
+
          (rnrs hashtables (6))
 
          (rnrs io ports (6))
          (rnrs records procedural (6))
          (rnrs records syntactic (6))
          (rnrs sorting (6))
-         (rnrs syntax-case (6))))
+          ;; See note above on exporting syntax-case.
+         (rename (rnrs syntax-case (6))
+                  (syntax-case syntax-case-hack))
+         (rnrs unicode (6))))