diff --git a/srfi/srfi-1.scm b/srfi/srfi-1.scm index 1d9dd678c..a06e8462e 100644 --- a/srfi/srfi-1.scm +++ b/srfi/srfi-1.scm @@ -1,58 +1,59 @@ -;;;; srfi-1.scm --- SRFI-1 procedures for Guile -;;;; -;;;; Copyright (C) 2001 Free Software Foundation, Inc. -;;;; -;;;; This program is free software; you can redistribute it and/or -;;;; modify it under the terms of the GNU General Public License as -;;;; published by the Free Software Foundation; either version 2, or -;;;; (at your option) any later version. -;;;; -;;;; This program is distributed in the hope that it will be useful, -;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;;;; General Public License for more details. -;;;; -;;;; You should have received a copy of the GNU General Public License -;;;; along with this software; see the file COPYING. If not, write to -;;;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, -;;;; Boston, MA 02111-1307 USA -;;;; -;;;; As a special exception, the Free Software Foundation gives permission -;;;; for additional uses of the text contained in its release of GUILE. -;;;; -;;;; The exception is that, if you link the GUILE library with other files -;;;; to produce an executable, this does not by itself cause the -;;;; resulting executable to be covered by the GNU General Public License. -;;;; Your use of that executable is in no way restricted on account of -;;;; linking the GUILE library code into it. -;;;; -;;;; This exception does not however invalidate any other reasons why -;;;; the executable file might be covered by the GNU General Public License. -;;;; -;;;; This exception applies only to the code released by the -;;;; Free Software Foundation under the name GUILE. If you copy -;;;; code from other Free Software Foundation releases into a copy of -;;;; GUILE, as the General Public License permits, the exception does -;;;; not apply to the code that you add in this way. To avoid misleading -;;;; anyone as to the status of such modified files, you must delete -;;;; this exception notice from them. -;;;; -;;;; If you write modifications of your own for GUILE, it is your choice -;;;; whether to permit this exception to apply to your modifications. -;;;; If you do not wish that, delete this exception notice. +;;; srfi-1.scm --- List Library + +;; Copyright (C) 2001, 2002 Free Software Foundation, Inc. +;; +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License as +;; published by the Free Software Foundation; either version 2, or +;; (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with this software; see the file COPYING. If not, write to +;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, +;; Boston, MA 02111-1307 USA +;; +;; As a special exception, the Free Software Foundation gives permission +;; for additional uses of the text contained in its release of GUILE. +;; +;; The exception is that, if you link the GUILE library with other files +;; to produce an executable, this does not by itself cause the +;; resulting executable to be covered by the GNU General Public License. +;; Your use of that executable is in no way restricted on account of +;; linking the GUILE library code into it. +;; +;; This exception does not however invalidate any other reasons why +;; the executable file might be covered by the GNU General Public License. +;; +;; This exception applies only to the code released by the +;; Free Software Foundation under the name GUILE. If you copy +;; code from other Free Software Foundation releases into a copy of +;; GUILE, as the General Public License permits, the exception does +;; not apply to the code that you add in this way. To avoid misleading +;; anyone as to the status of such modified files, you must delete +;; this exception notice from them. +;; +;; If you write modifications of your own for GUILE, it is your choice +;; whether to permit this exception to apply to your modifications. +;; If you do not wish that, delete this exception notice. ;;; Author: Martin Grabmueller ;;; Date: 2001-06-06 ;;; Commentary: -;;; This is an implementation of SRFI-1 (List Library) -;;; -;;; All procedures defined in SRFI-1, which are not already defined in -;;; the Guile core library, are exported. The procedures in this -;;; implementation work, but they have not been tuned for speed or -;;; memory usage. -;;; +;; This is an implementation of SRFI-1 (List Library). +;; +;; All procedures defined in SRFI-1, which are not already defined in +;; the Guile core library, are exported. The procedures in this +;; implementation work, but they have not been tuned for speed or +;; memory usage. +;; +;; This module is fully documented in the Guile Reference Manual. ;;; Code: @@ -1051,3 +1052,5 @@ (define (lset-diff+intersection! = list1 . rest) (apply lset-diff+intersection = list1 rest)) ; XXX:optimize + +;;; srfi-1.scm ends here diff --git a/srfi/srfi-10.scm b/srfi/srfi-10.scm index e3327548c..481732051 100644 --- a/srfi/srfi-10.scm +++ b/srfi/srfi-10.scm @@ -1,70 +1,72 @@ -;;;; srfi-10.scm --- SRFI-10 read hash extension for Guile -;;;; -;;;; Copyright (C) 2001 Free Software Foundation, Inc. -;;;; -;;;; This program is free software; you can redistribute it and/or -;;;; modify it under the terms of the GNU General Public License as -;;;; published by the Free Software Foundation; either version 2, or -;;;; (at your option) any later version. -;;;; -;;;; This program is distributed in the hope that it will be useful, -;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;;;; General Public License for more details. -;;;; -;;;; You should have received a copy of the GNU General Public License -;;;; along with this software; see the file COPYING. If not, write to -;;;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, -;;;; Boston, MA 02111-1307 USA -;;;; -;;;; As a special exception, the Free Software Foundation gives permission -;;;; for additional uses of the text contained in its release of GUILE. -;;;; -;;;; The exception is that, if you link the GUILE library with other files -;;;; to produce an executable, this does not by itself cause the -;;;; resulting executable to be covered by the GNU General Public License. -;;;; Your use of that executable is in no way restricted on account of -;;;; linking the GUILE library code into it. -;;;; -;;;; This exception does not however invalidate any other reasons why -;;;; the executable file might be covered by the GNU General Public License. -;;;; -;;;; This exception applies only to the code released by the -;;;; Free Software Foundation under the name GUILE. If you copy -;;;; code from other Free Software Foundation releases into a copy of -;;;; GUILE, as the General Public License permits, the exception does -;;;; not apply to the code that you add in this way. To avoid misleading -;;;; anyone as to the status of such modified files, you must delete -;;;; this exception notice from them. -;;;; -;;;; If you write modifications of your own for GUILE, it is your choice -;;;; whether to permit this exception to apply to your modifications. -;;;; If you do not wish that, delete this exception notice. +;;; srfi-10.scm --- Hash-Comma Reader Extension + +;; Copyright (C) 2001, 2002 Free Software Foundation, Inc. +;; +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License as +;; published by the Free Software Foundation; either version 2, or +;; (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with this software; see the file COPYING. If not, write to +;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, +;; Boston, MA 02111-1307 USA +;; +;; As a special exception, the Free Software Foundation gives permission +;; for additional uses of the text contained in its release of GUILE. +;; +;; The exception is that, if you link the GUILE library with other files +;; to produce an executable, this does not by itself cause the +;; resulting executable to be covered by the GNU General Public License. +;; Your use of that executable is in no way restricted on account of +;; linking the GUILE library code into it. +;; +;; This exception does not however invalidate any other reasons why +;; the executable file might be covered by the GNU General Public License. +;; +;; This exception applies only to the code released by the +;; Free Software Foundation under the name GUILE. If you copy +;; code from other Free Software Foundation releases into a copy of +;; GUILE, as the General Public License permits, the exception does +;; not apply to the code that you add in this way. To avoid misleading +;; anyone as to the status of such modified files, you must delete +;; this exception notice from them. +;; +;; If you write modifications of your own for GUILE, it is your choice +;; whether to permit this exception to apply to your modifications. +;; If you do not wish that, delete this exception notice. ;;; Commentary: -;;; This module implements the syntax extension #,(), also called -;;; hash-comma, which is defined in SRFI-10. -;;; -;;; The support for SRFI-10 consists of the procedure -;;; `define-reader-ctor' for defining new reader constructors and the -;;; read syntax form -;;; -;;; #,( ...) -;;; -;;; where must be a symbol for which a read constructor was -;;; defined previously. -;;; -;;; Example: -;;; -;;; (define-reader-ctor 'file open-input-file) -;;; (define f '#,(file "/etc/passwd")) -;;; (read-line f) -;;; => -;;; "root:x:0:0:root:/root:/bin/bash" -;;; -;;; Please note the quote before the #,(file ...) expression. This is -;;; necessary because ports are not self-evaluating in Guile. +;; This module implements the syntax extension #,(), also called +;; hash-comma, which is defined in SRFI-10. +;; +;; The support for SRFI-10 consists of the procedure +;; `define-reader-ctor' for defining new reader constructors and the +;; read syntax form +;; +;; #,( ...) +;; +;; where must be a symbol for which a read constructor was +;; defined previously. +;; +;; Example: +;; +;; (define-reader-ctor 'file open-input-file) +;; (define f '#,(file "/etc/passwd")) +;; (read-line f) +;; => +;; "root:x:0:0:root:/root:/bin/bash" +;; +;; Please note the quote before the #,(file ...) expression. This is +;; necessary because ports are not self-evaluating in Guile. +;; +;; This module is fully documented in the Guile Reference Manual. ;;; Code: @@ -108,3 +110,5 @@ ;; Install the hash extension. ;; (read-hash-extend #\, hash-comma) + +;;; srfi-10.scm ends here diff --git a/srfi/srfi-11.scm b/srfi/srfi-11.scm index 6eda30d98..cabd8e6f3 100644 --- a/srfi/srfi-11.scm +++ b/srfi/srfi-11.scm @@ -1,45 +1,45 @@ -;;;; srfi-11.scm --- SRFI-11 procedures for Guile +;;; srfi-11.scm --- let-values and let*-values -;;; Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. -;;; -;;; This program is free software; you can redistribute it and/or -;;; modify it under the terms of the GNU General Public License as -;;; published by the Free Software Foundation; either version 2, or -;;; (at your option) any later version. -;;; -;;; This program is distributed in the hope that it will be useful, -;;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;;; General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with this software; see the file COPYING. If not, write to -;;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, -;;; Boston, MA 02111-1307 USA -;;; -;;; As a special exception, the Free Software Foundation gives permission -;;; for additional uses of the text contained in its release of GUILE. -;;; -;;; The exception is that, if you link the GUILE library with other files -;;; to produce an executable, this does not by itself cause the -;;; resulting executable to be covered by the GNU General Public License. -;;; Your use of that executable is in no way restricted on account of -;;; linking the GUILE library code into it. -;;; -;;; This exception does not however invalidate any other reasons why -;;; the executable file might be covered by the GNU General Public License. -;;; -;;; This exception applies only to the code released by the -;;; Free Software Foundation under the name GUILE. If you copy -;;; code from other Free Software Foundation releases into a copy of -;;; GUILE, as the General Public License permits, the exception does -;;; not apply to the code that you add in this way. To avoid misleading -;;; anyone as to the status of such modified files, you must delete -;;; this exception notice from them. -;;; -;;; If you write modifications of your own for GUILE, it is your choice -;;; whether to permit this exception to apply to your modifications. -;;; If you do not wish that, delete this exception notice. +;; Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. +;; +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License as +;; published by the Free Software Foundation; either version 2, or +;; (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with this software; see the file COPYING. If not, write to +;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, +;; Boston, MA 02111-1307 USA +;; +;; As a special exception, the Free Software Foundation gives permission +;; for additional uses of the text contained in its release of GUILE. +;; +;; The exception is that, if you link the GUILE library with other files +;; to produce an executable, this does not by itself cause the +;; resulting executable to be covered by the GNU General Public License. +;; Your use of that executable is in no way restricted on account of +;; linking the GUILE library code into it. +;; +;; This exception does not however invalidate any other reasons why +;; the executable file might be covered by the GNU General Public License. +;; +;; This exception applies only to the code released by the +;; Free Software Foundation under the name GUILE. If you copy +;; code from other Free Software Foundation releases into a copy of +;; GUILE, as the General Public License permits, the exception does +;; not apply to the code that you add in this way. To avoid misleading +;; anyone as to the status of such modified files, you must delete +;; this exception notice from them. +;; +;; If you write modifications of your own for GUILE, it is your choice +;; whether to permit this exception to apply to your modifications. +;; If you do not wish that, delete this exception notice. ;;; Commentary: @@ -56,6 +56,8 @@ ;; values returned by `bar'. All of these are available to `baz'. ;; ;; let*-values : let-values :: let* : let +;; +;; This module is fully documented in the Guile Reference Manual. ;;; Code: @@ -275,3 +277,5 @@ ; (if (null? vars) ; `(begin ,@body) ; (let-values-helper vars body))) + +;;; srfi-11.scm ends here diff --git a/srfi/srfi-13.scm b/srfi/srfi-13.scm index 7986e5a8a..1ca8edac3 100644 --- a/srfi/srfi-13.scm +++ b/srfi/srfi-13.scm @@ -1,45 +1,45 @@ -;;; srfi-13.scm --- SRFI-13 procedures for Guile -;;; -;;; Copyright (C) 2001, 2002 Free Software Foundation, Inc. -;;; -;;; This program is free software; you can redistribute it and/or -;;; modify it under the terms of the GNU General Public License as -;;; published by the Free Software Foundation; either version 2, or -;;; (at your option) any later version. -;;; -;;; This program is distributed in the hope that it will be useful, -;;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;;; General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with this software; see the file COPYING. If not, write to -;;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, -;;; Boston, MA 02111-1307 USA -;;; -;;; As a special exception, the Free Software Foundation gives permission -;;; for additional uses of the text contained in its release of GUILE. -;;; -;;; The exception is that, if you link the GUILE library with other files -;;; to produce an executable, this does not by itself cause the -;;; resulting executable to be covered by the GNU General Public License. -;;; Your use of that executable is in no way restricted on account of -;;; linking the GUILE library code into it. -;;; -;;; This exception does not however invalidate any other reasons why -;;; the executable file might be covered by the GNU General Public License. -;;; -;;; This exception applies only to the code released by the -;;; Free Software Foundation under the name GUILE. If you copy -;;; code from other Free Software Foundation releases into a copy of -;;; GUILE, as the General Public License permits, the exception does -;;; not apply to the code that you add in this way. To avoid misleading -;;; anyone as to the status of such modified files, you must delete -;;; this exception notice from them. -;;; -;;; If you write modifications of your own for GUILE, it is your choice -;;; whether to permit this exception to apply to your modifications. -;;; If you do not wish that, delete this exception notice. +;;; srfi-13.scm --- String Library + +;; Copyright (C) 2001, 2002 Free Software Foundation, Inc. +;; +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License as +;; published by the Free Software Foundation; either version 2, or +;; (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with this software; see the file COPYING. If not, write to +;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, +;; Boston, MA 02111-1307 USA +;; +;; As a special exception, the Free Software Foundation gives permission +;; for additional uses of the text contained in its release of GUILE. +;; +;; The exception is that, if you link the GUILE library with other files +;; to produce an executable, this does not by itself cause the +;; resulting executable to be covered by the GNU General Public License. +;; Your use of that executable is in no way restricted on account of +;; linking the GUILE library code into it. +;; +;; This exception does not however invalidate any other reasons why +;; the executable file might be covered by the GNU General Public License. +;; +;; This exception applies only to the code released by the +;; Free Software Foundation under the name GUILE. If you copy +;; code from other Free Software Foundation releases into a copy of +;; GUILE, as the General Public License permits, the exception does +;; not apply to the code that you add in this way. To avoid misleading +;; anyone as to the status of such modified files, you must delete +;; this exception notice from them. +;; +;; If you write modifications of your own for GUILE, it is your choice +;; whether to permit this exception to apply to your modifications. +;; If you do not wish that, delete this exception notice. ;;; Commentary: @@ -173,3 +173,4 @@ (string-length s)))) (hash (string-upcase (substring/shared s start end)) bound)))) +;;; srfi-13.scm ends here diff --git a/srfi/srfi-14.scm b/srfi/srfi-14.scm index b82990e04..3faebe2b8 100644 --- a/srfi/srfi-14.scm +++ b/srfi/srfi-14.scm @@ -1,45 +1,45 @@ -;;; srfi-14.scm --- SRFI-14 procedures for Guile -;;; -;;; Copyright (C) 2001, 2002 Free Software Foundation, Inc. -;;; -;;; This program is free software; you can redistribute it and/or -;;; modify it under the terms of the GNU General Public License as -;;; published by the Free Software Foundation; either version 2, or -;;; (at your option) any later version. -;;; -;;; This program is distributed in the hope that it will be useful, -;;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;;; General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with this software; see the file COPYING. If not, write to -;;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, -;;; Boston, MA 02111-1307 USA -;;; -;;; As a special exception, the Free Software Foundation gives permission -;;; for additional uses of the text contained in its release of GUILE. -;;; -;;; The exception is that, if you link the GUILE library with other files -;;; to produce an executable, this does not by itself cause the -;;; resulting executable to be covered by the GNU General Public License. -;;; Your use of that executable is in no way restricted on account of -;;; linking the GUILE library code into it. -;;; -;;; This exception does not however invalidate any other reasons why -;;; the executable file might be covered by the GNU General Public License. -;;; -;;; This exception applies only to the code released by the -;;; Free Software Foundation under the name GUILE. If you copy -;;; code from other Free Software Foundation releases into a copy of -;;; GUILE, as the General Public License permits, the exception does -;;; not apply to the code that you add in this way. To avoid misleading -;;; anyone as to the status of such modified files, you must delete -;;; this exception notice from them. -;;; -;;; If you write modifications of your own for GUILE, it is your choice -;;; whether to permit this exception to apply to your modifications. -;;; If you do not wish that, delete this exception notice. +;;; srfi-14.scm --- Character-set Library + +;; Copyright (C) 2001, 2002 Free Software Foundation, Inc. +;; +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License as +;; published by the Free Software Foundation; either version 2, or +;; (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with this software; see the file COPYING. If not, write to +;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, +;; Boston, MA 02111-1307 USA +;; +;; As a special exception, the Free Software Foundation gives permission +;; for additional uses of the text contained in its release of GUILE. +;; +;; The exception is that, if you link the GUILE library with other files +;; to produce an executable, this does not by itself cause the +;; resulting executable to be covered by the GNU General Public License. +;; Your use of that executable is in no way restricted on account of +;; linking the GUILE library code into it. +;; +;; This exception does not however invalidate any other reasons why +;; the executable file might be covered by the GNU General Public License. +;; +;; This exception applies only to the code released by the +;; Free Software Foundation under the name GUILE. If you copy +;; code from other Free Software Foundation releases into a copy of +;; GUILE, as the General Public License permits, the exception does +;; not apply to the code that you add in this way. To avoid misleading +;; anyone as to the status of such modified files, you must delete +;; this exception notice from them. +;; +;; If you write modifications of your own for GUILE, it is your choice +;; whether to permit this exception to apply to your modifications. +;; If you do not wish that, delete this exception notice. ;;; Commentary: diff --git a/srfi/srfi-16.scm b/srfi/srfi-16.scm index fe179e849..f283e3c1a 100644 --- a/srfi/srfi-16.scm +++ b/srfi/srfi-16.scm @@ -1,74 +1,75 @@ -;;;; srfi-16.scm --- `case-lambda' for Guile +;;; srfi-16.scm --- case-lambda -;;; Copyright (C) 2001 Free Software Foundation, Inc. -;;; -;;; This program is free software; you can redistribute it and/or -;;; modify it under the terms of the GNU General Public License as -;;; published by the Free Software Foundation; either version 2, or -;;; (at your option) any later version. -;;; -;;; This program is distributed in the hope that it will be useful, -;;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;;; General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with this software; see the file COPYING. If not, write to -;;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, -;;; Boston, MA 02111-1307 USA -;;; -;;; As a special exception, the Free Software Foundation gives permission -;;; for additional uses of the text contained in its release of GUILE. -;;; -;;; The exception is that, if you link the GUILE library with other files -;;; to produce an executable, this does not by itself cause the -;;; resulting executable to be covered by the GNU General Public License. -;;; Your use of that executable is in no way restricted on account of -;;; linking the GUILE library code into it. -;;; -;;; This exception does not however invalidate any other reasons why -;;; the executable file might be covered by the GNU General Public License. -;;; -;;; This exception applies only to the code released by the -;;; Free Software Foundation under the name GUILE. If you copy -;;; code from other Free Software Foundation releases into a copy of -;;; GUILE, as the General Public License permits, the exception does -;;; not apply to the code that you add in this way. To avoid misleading -;;; anyone as to the status of such modified files, you must delete -;;; this exception notice from them. -;;; -;;; If you write modifications of your own for GUILE, it is your choice -;;; whether to permit this exception to apply to your modifications. -;;; If you do not wish that, delete this exception notice. - -;;; Commentary: - -;;; Implementation of SRFI-16. `case-lambda' is a syntactic form -;;; which permits writing functions acting different according to the -;;; number of arguments passed. -;;; -;;; The syntax of the `case-lambda' form is defined in the following -;;; EBNF grammar. -;;; -;;; -;;; --> (case-lambda ) -;;; -;;; --> ( *) -;;; -;;; --> (*) -;;; | (* . ) -;;; | -;;; -;;; The value returned by a `case-lambda' form is a procedure which -;;; matches the number of actual arguments against the signatures in -;;; the various clauses, in order. The first matching clause is -;;; selected, the corresponding values from the actual parameter list -;;; are bound to the variable names in the clauses and the body of the -;;; clause is evaluated. +;; Copyright (C) 2001, 2002 Free Software Foundation, Inc. +;; +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License as +;; published by the Free Software Foundation; either version 2, or +;; (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with this software; see the file COPYING. If not, write to +;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, +;; Boston, MA 02111-1307 USA +;; +;; As a special exception, the Free Software Foundation gives permission +;; for additional uses of the text contained in its release of GUILE. +;; +;; The exception is that, if you link the GUILE library with other files +;; to produce an executable, this does not by itself cause the +;; resulting executable to be covered by the GNU General Public License. +;; Your use of that executable is in no way restricted on account of +;; linking the GUILE library code into it. +;; +;; This exception does not however invalidate any other reasons why +;; the executable file might be covered by the GNU General Public License. +;; +;; This exception applies only to the code released by the +;; Free Software Foundation under the name GUILE. If you copy +;; code from other Free Software Foundation releases into a copy of +;; GUILE, as the General Public License permits, the exception does +;; not apply to the code that you add in this way. To avoid misleading +;; anyone as to the status of such modified files, you must delete +;; this exception notice from them. +;; +;; If you write modifications of your own for GUILE, it is your choice +;; whether to permit this exception to apply to your modifications. +;; If you do not wish that, delete this exception notice. ;;; Author: Martin Grabmueller +;;; Commentary: + +;; Implementation of SRFI-16. `case-lambda' is a syntactic form +;; which permits writing functions acting different according to the +;; number of arguments passed. +;; +;; The syntax of the `case-lambda' form is defined in the following +;; EBNF grammar. +;; +;; +;; --> (case-lambda ) +;; +;; --> ( *) +;; +;; --> (*) +;; | (* . ) +;; | +;; +;; The value returned by a `case-lambda' form is a procedure which +;; matches the number of actual arguments against the signatures in +;; the various clauses, in order. The first matching clause is +;; selected, the corresponding values from the actual parameter list +;; are bound to the variable names in the clauses and the body of the +;; clause is evaluated. + ;;; Code: + (define-module (srfi srfi-16) :export-syntax (case-lambda)) @@ -120,7 +121,7 @@ (define (gen-temps vars args-name) (let lp ((v vars) (i 0)) (cond ((null? v) '()) - ((pair? v) + ((pair? v) (cons `(,(car v) ,(accessor args-name i #f)) (lp (cdr v) (+ i 1)))) (else `((,v ,(accessor args-name i #t))))))) @@ -146,3 +147,5 @@ (let ((,length-name (length ,args-name))) (cond ,@(gen-clauses clauses length-name args-name)))))) proc))) + +;;; srfi-16.scm ends here diff --git a/srfi/srfi-17.scm b/srfi/srfi-17.scm index 27538a17d..4ec71c595 100644 --- a/srfi/srfi-17.scm +++ b/srfi/srfi-17.scm @@ -1,46 +1,47 @@ -;;;; srfi-17.scm --- SRFI-17 procedures for Guile +;;; srfi-17.scm --- Generalized set! -;;; Copyright (C) 2001 Free Software Foundation, Inc. -;;; Originally by Matthias Koeppe -;;; -;;; This program is free software; you can redistribute it and/or -;;; modify it under the terms of the GNU General Public License as -;;; published by the Free Software Foundation; either version 2, or -;;; (at your option) any later version. -;;; -;;; This program is distributed in the hope that it will be useful, -;;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;;; General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with this software; see the file COPYING. If not, write to -;;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, -;;; Boston, MA 02111-1307 USA -;;; -;;; As a special exception, the Free Software Foundation gives permission -;;; for additional uses of the text contained in its release of GUILE. -;;; -;;; The exception is that, if you link the GUILE library with other files -;;; to produce an executable, this does not by itself cause the -;;; resulting executable to be covered by the GNU General Public License. -;;; Your use of that executable is in no way restricted on account of -;;; linking the GUILE library code into it. -;;; -;;; This exception does not however invalidate any other reasons why -;;; the executable file might be covered by the GNU General Public License. -;;; -;;; This exception applies only to the code released by the -;;; Free Software Foundation under the name GUILE. If you copy -;;; code from other Free Software Foundation releases into a copy of -;;; GUILE, as the General Public License permits, the exception does -;;; not apply to the code that you add in this way. To avoid misleading -;;; anyone as to the status of such modified files, you must delete -;;; this exception notice from them. -;;; -;;; If you write modifications of your own for GUILE, it is your choice -;;; whether to permit this exception to apply to your modifications. -;;; If you do not wish that, delete this exception notice. +;; Copyright (C) 2001, 2002 Free Software Foundation, Inc. +;; +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License as +;; published by the Free Software Foundation; either version 2, or +;; (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with this software; see the file COPYING. If not, write to +;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, +;; Boston, MA 02111-1307 USA +;; +;; As a special exception, the Free Software Foundation gives permission +;; for additional uses of the text contained in its release of GUILE. +;; +;; The exception is that, if you link the GUILE library with other files +;; to produce an executable, this does not by itself cause the +;; resulting executable to be covered by the GNU General Public License. +;; Your use of that executable is in no way restricted on account of +;; linking the GUILE library code into it. +;; +;; This exception does not however invalidate any other reasons why +;; the executable file might be covered by the GNU General Public License. +;; +;; This exception applies only to the code released by the +;; Free Software Foundation under the name GUILE. If you copy +;; code from other Free Software Foundation releases into a copy of +;; GUILE, as the General Public License permits, the exception does +;; not apply to the code that you add in this way. To avoid misleading +;; anyone as to the status of such modified files, you must delete +;; this exception notice from them. +;; +;; If you write modifications of your own for GUILE, it is your choice +;; whether to permit this exception to apply to your modifications. +;; If you do not wish that, delete this exception notice. + +;;; Author: Matthias Koeppe ;;; Commentary: @@ -61,6 +62,8 @@ ;; setter") via the `getter-with-setter' procedure. This procedure is ;; also specified in the SRFI. Using it avoids the described ;; problems. +;; +;; This module is fully documented in the Guile Reference Manual. ;;; Code: @@ -123,3 +126,5 @@ (define cddddr (getter-with-setter cddddr (compose-setter set-cdr! cdddr))) (define string-ref (getter-with-setter string-ref string-set!)) (define vector-ref (getter-with-setter vector-ref vector-set!)) + +;;; srfi-17.scm ends here diff --git a/srfi/srfi-19.scm b/srfi/srfi-19.scm index efdd5f76e..d828b0443 100644 --- a/srfi/srfi-19.scm +++ b/srfi/srfi-19.scm @@ -1,51 +1,51 @@ -;;; srfi-19.scm --- SRFI-19 procedures for Guile -;;; -;;; Copyright (C) 2001, 2002 Free Software Foundation, Inc. -;;; -;;; This program is free software; you can redistribute it and/or -;;; modify it under the terms of the GNU General Public License as -;;; published by the Free Software Foundation; either version 2, or -;;; (at your option) any later version. -;;; -;;; This program is distributed in the hope that it will be useful, -;;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;;; General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with this software; see the file COPYING. If not, write to -;;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, -;;; Boston, MA 02111-1307 USA -;;; -;;; As a special exception, the Free Software Foundation gives permission -;;; for additional uses of the text contained in its release of GUILE. -;;; -;;; The exception is that, if you link the GUILE library with other files -;;; to produce an executable, this does not by itself cause the -;;; resulting executable to be covered by the GNU General Public License. -;;; Your use of that executable is in no way restricted on account of -;;; linking the GUILE library code into it. -;;; -;;; This exception does not however invalidate any other reasons why -;;; the executable file might be covered by the GNU General Public License. -;;; -;;; This exception applies only to the code released by the -;;; Free Software Foundation under the name GUILE. If you copy -;;; code from other Free Software Foundation releases into a copy of -;;; GUILE, as the General Public License permits, the exception does -;;; not apply to the code that you add in this way. To avoid misleading -;;; anyone as to the status of such modified files, you must delete -;;; this exception notice from them. -;;; -;;; If you write modifications of your own for GUILE, it is your choice -;;; whether to permit this exception to apply to your modifications. -;;; If you do not wish that, delete this exception notice. +;;; srfi-19.scm --- Time/Date Library + +;; Copyright (C) 2001, 2002 Free Software Foundation, Inc. +;; +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License as +;; published by the Free Software Foundation; either version 2, or +;; (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with this software; see the file COPYING. If not, write to +;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, +;; Boston, MA 02111-1307 USA +;; +;; As a special exception, the Free Software Foundation gives permission +;; for additional uses of the text contained in its release of GUILE. +;; +;; The exception is that, if you link the GUILE library with other files +;; to produce an executable, this does not by itself cause the +;; resulting executable to be covered by the GNU General Public License. +;; Your use of that executable is in no way restricted on account of +;; linking the GUILE library code into it. +;; +;; This exception does not however invalidate any other reasons why +;; the executable file might be covered by the GNU General Public License. +;; +;; This exception applies only to the code released by the +;; Free Software Foundation under the name GUILE. If you copy +;; code from other Free Software Foundation releases into a copy of +;; GUILE, as the General Public License permits, the exception does +;; not apply to the code that you add in this way. To avoid misleading +;; anyone as to the status of such modified files, you must delete +;; this exception notice from them. +;; +;; If you write modifications of your own for GUILE, it is your choice +;; whether to permit this exception to apply to your modifications. +;; If you do not wish that, delete this exception notice. + +;;; Author: Rob Browning +;;; Originally from SRFI reference implementation by Will Fitzgerald. ;;; Commentary: -;; Originally from SRFI reference implementation by Will Fitzgerald. -;; Ported to Guile by Rob Browning . -;; ;; This module is fully documented in the Guile Reference Manual. ;;; Code: diff --git a/srfi/srfi-2.scm b/srfi/srfi-2.scm index 9febda017..8fe692efc 100644 --- a/srfi/srfi-2.scm +++ b/srfi/srfi-2.scm @@ -1,48 +1,56 @@ -;;;; srfi-2.scm --- SRFI-2 procedures for Guile -;;;; -;;;; Copyright (C) 2001 Free Software Foundation, Inc. -;;;; -;;;; This program is free software; you can redistribute it and/or -;;;; modify it under the terms of the GNU General Public License as -;;;; published by the Free Software Foundation; either version 2, or -;;;; (at your option) any later version. -;;;; -;;;; This program is distributed in the hope that it will be useful, -;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;;;; General Public License for more details. -;;;; -;;;; You should have received a copy of the GNU General Public License -;;;; along with this software; see the file COPYING. If not, write to -;;;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, -;;;; Boston, MA 02111-1307 USA -;;;; -;;;; As a special exception, the Free Software Foundation gives permission -;;;; for additional uses of the text contained in its release of GUILE. -;;;; -;;;; The exception is that, if you link the GUILE library with other files -;;;; to produce an executable, this does not by itself cause the -;;;; resulting executable to be covered by the GNU General Public License. -;;;; Your use of that executable is in no way restricted on account of -;;;; linking the GUILE library code into it. -;;;; -;;;; This exception does not however invalidate any other reasons why -;;;; the executable file might be covered by the GNU General Public License. -;;;; -;;;; This exception applies only to the code released by the -;;;; Free Software Foundation under the name GUILE. If you copy -;;;; code from other Free Software Foundation releases into a copy of -;;;; GUILE, as the General Public License permits, the exception does -;;;; not apply to the code that you add in this way. To avoid misleading -;;;; anyone as to the status of such modified files, you must delete -;;;; this exception notice from them. -;;;; -;;;; If you write modifications of your own for GUILE, it is your choice -;;;; whether to permit this exception to apply to your modifications. -;;;; If you do not wish that, delete this exception notice. +;;; srfi-2.scm --- and-let* + +;; Copyright (C) 2001, 2002 Free Software Foundation, Inc. +;; +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License as +;; published by the Free Software Foundation; either version 2, or +;; (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with this software; see the file COPYING. If not, write to +;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, +;; Boston, MA 02111-1307 USA +;; +;; As a special exception, the Free Software Foundation gives permission +;; for additional uses of the text contained in its release of GUILE. +;; +;; The exception is that, if you link the GUILE library with other files +;; to produce an executable, this does not by itself cause the +;; resulting executable to be covered by the GNU General Public License. +;; Your use of that executable is in no way restricted on account of +;; linking the GUILE library code into it. +;; +;; This exception does not however invalidate any other reasons why +;; the executable file might be covered by the GNU General Public License. +;; +;; This exception applies only to the code released by the +;; Free Software Foundation under the name GUILE. If you copy +;; code from other Free Software Foundation releases into a copy of +;; GUILE, as the General Public License permits, the exception does +;; not apply to the code that you add in this way. To avoid misleading +;; anyone as to the status of such modified files, you must delete +;; this exception notice from them. +;; +;; If you write modifications of your own for GUILE, it is your choice +;; whether to permit this exception to apply to your modifications. +;; If you do not wish that, delete this exception notice. + +;;; Commentary: + +;; This module is fully documented in the Guile Reference Manual. + +;;; Code: (define-module (srfi srfi-2) :use-module (ice-9 and-let-star) :re-export-syntax (and-let*)) (cond-expand-provide (current-module) '(srfi-2)) + +;;; srfi-2.scm ends here diff --git a/srfi/srfi-4.scm b/srfi/srfi-4.scm index 134ac5875..44aaade91 100644 --- a/srfi/srfi-4.scm +++ b/srfi/srfi-4.scm @@ -1,54 +1,55 @@ -;;;; srfi-4.scm --- Homogeneous numeric vector datatypes. -;;;; -;;;; Copyright (C) 2001 Free Software Foundation, Inc. -;;;; -;;;; This program is free software; you can redistribute it and/or -;;;; modify it under the terms of the GNU General Public License as -;;;; published by the Free Software Foundation; either version 2, or -;;;; (at your option) any later version. -;;;; -;;;; This program is distributed in the hope that it will be useful, -;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;;;; General Public License for more details. -;;;; -;;;; You should have received a copy of the GNU General Public License -;;;; along with this software; see the file COPYING. If not, write to -;;;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, -;;;; Boston, MA 02111-1307 USA -;;;; -;;;; As a special exception, the Free Software Foundation gives permission -;;;; for additional uses of the text contained in its release of GUILE. -;;;; -;;;; The exception is that, if you link the GUILE library with other files -;;;; to produce an executable, this does not by itself cause the -;;;; resulting executable to be covered by the GNU General Public License. -;;;; Your use of that executable is in no way restricted on account of -;;;; linking the GUILE library code into it. -;;;; -;;;; This exception does not however invalidate any other reasons why -;;;; the executable file might be covered by the GNU General Public License. -;;;; -;;;; This exception applies only to the code released by the -;;;; Free Software Foundation under the name GUILE. If you copy -;;;; code from other Free Software Foundation releases into a copy of -;;;; GUILE, as the General Public License permits, the exception does -;;;; not apply to the code that you add in this way. To avoid misleading -;;;; anyone as to the status of such modified files, you must delete -;;;; this exception notice from them. -;;;; -;;;; If you write modifications of your own for GUILE, it is your choice -;;;; whether to permit this exception to apply to your modifications. -;;;; If you do not wish that, delete this exception notice. +;;; srfi-4.scm --- Homogeneous Numeric Vector Datatypes + +;; Copyright (C) 2001, 2002 Free Software Foundation, Inc. +;; +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License as +;; published by the Free Software Foundation; either version 2, or +;; (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with this software; see the file COPYING. If not, write to +;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, +;; Boston, MA 02111-1307 USA +;; +;; As a special exception, the Free Software Foundation gives permission +;; for additional uses of the text contained in its release of GUILE. +;; +;; The exception is that, if you link the GUILE library with other files +;; to produce an executable, this does not by itself cause the +;; resulting executable to be covered by the GNU General Public License. +;; Your use of that executable is in no way restricted on account of +;; linking the GUILE library code into it. +;; +;; This exception does not however invalidate any other reasons why +;; the executable file might be covered by the GNU General Public License. +;; +;; This exception applies only to the code released by the +;; Free Software Foundation under the name GUILE. If you copy +;; code from other Free Software Foundation releases into a copy of +;; GUILE, as the General Public License permits, the exception does +;; not apply to the code that you add in this way. To avoid misleading +;; anyone as to the status of such modified files, you must delete +;; this exception notice from them. +;; +;; If you write modifications of your own for GUILE, it is your choice +;; whether to permit this exception to apply to your modifications. +;; If you do not wish that, delete this exception notice. + +;;; Author: Martin Grabmueller ;;; Commentary: -;;; This module implements homogeneous numeric vectors as defined in SRFI-4. +;; This module implements homogeneous numeric vectors as defined in SRFI-4. +;; This module is fully documented in the Guile Reference Manual. ;;; Code: -;;; Author: Martin Grabmueller - (define-module (srfi srfi-4) :export ( ;;; Unsigned 8-bit vectors. @@ -157,7 +158,7 @@ (else (error "syntax error in #u...() vector literal")))) (error "syntax error in #u...() vector literal"))) - + ;; Reader extension for #s8(), #s16(), #s32() and #s64() vectors. ;; @@ -190,10 +191,12 @@ (else (error "syntax error in #s...() vector literal")))) (error "syntax error in #s...() vector literal"))) - + ;; Install the hash extensions. ;; (read-hash-extend #\f hash-f) (read-hash-extend #\u hash-u) (read-hash-extend #\s hash-s) + +;;; srfi-4.scm ends here diff --git a/srfi/srfi-6.scm b/srfi/srfi-6.scm index 216e4875a..5b6187ad5 100644 --- a/srfi/srfi-6.scm +++ b/srfi/srfi-6.scm @@ -1,45 +1,51 @@ -;;;; srfi-6.scm --- SRFI-6 procedures for Guile -;;;; -;;;; Copyright (C) 2001 Free Software Foundation, Inc. -;;;; -;;;; This program is free software; you can redistribute it and/or -;;;; modify it under the terms of the GNU General Public License as -;;;; published by the Free Software Foundation; either version 2, or -;;;; (at your option) any later version. -;;;; -;;;; This program is distributed in the hope that it will be useful, -;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;;;; General Public License for more details. -;;;; -;;;; You should have received a copy of the GNU General Public License -;;;; along with this software; see the file COPYING. If not, write to -;;;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, -;;;; Boston, MA 02111-1307 USA -;;;; -;;;; As a special exception, the Free Software Foundation gives permission -;;;; for additional uses of the text contained in its release of GUILE. -;;;; -;;;; The exception is that, if you link the GUILE library with other files -;;;; to produce an executable, this does not by itself cause the -;;;; resulting executable to be covered by the GNU General Public License. -;;;; Your use of that executable is in no way restricted on account of -;;;; linking the GUILE library code into it. -;;;; -;;;; This exception does not however invalidate any other reasons why -;;;; the executable file might be covered by the GNU General Public License. -;;;; -;;;; This exception applies only to the code released by the -;;;; Free Software Foundation under the name GUILE. If you copy -;;;; code from other Free Software Foundation releases into a copy of -;;;; GUILE, as the General Public License permits, the exception does -;;;; not apply to the code that you add in this way. To avoid misleading -;;;; anyone as to the status of such modified files, you must delete -;;;; this exception notice from them. -;;;; -;;;; If you write modifications of your own for GUILE, it is your choice -;;;; whether to permit this exception to apply to your modifications. -;;;; If you do not wish that, delete this exception notice. +;;; srfi-6.scm --- Basic String Ports + +;; Copyright (C) 2001, 2002 Free Software Foundation, Inc. +;; +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License as +;; published by the Free Software Foundation; either version 2, or +;; (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with this software; see the file COPYING. If not, write to +;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, +;; Boston, MA 02111-1307 USA +;; +;; As a special exception, the Free Software Foundation gives permission +;; for additional uses of the text contained in its release of GUILE. +;; +;; The exception is that, if you link the GUILE library with other files +;; to produce an executable, this does not by itself cause the +;; resulting executable to be covered by the GNU General Public License. +;; Your use of that executable is in no way restricted on account of +;; linking the GUILE library code into it. +;; +;; This exception does not however invalidate any other reasons why +;; the executable file might be covered by the GNU General Public License. +;; +;; This exception applies only to the code released by the +;; Free Software Foundation under the name GUILE. If you copy +;; code from other Free Software Foundation releases into a copy of +;; GUILE, as the General Public License permits, the exception does +;; not apply to the code that you add in this way. To avoid misleading +;; anyone as to the status of such modified files, you must delete +;; this exception notice from them. +;; +;; If you write modifications of your own for GUILE, it is your choice +;; whether to permit this exception to apply to your modifications. +;; If you do not wish that, delete this exception notice. + +;;; Commentary: + +;; This module is fully documented in the Guile Reference Manual. + +;;; Code: (define-module (srfi srfi-6)) @@ -47,3 +53,5 @@ ;; is needed, and this file is just a placeholder. (cond-expand-provide (current-module) '(srfi-6)) + +;;; srfi-6.scm ends here diff --git a/srfi/srfi-8.scm b/srfi/srfi-8.scm index 85b31830e..21e141066 100644 --- a/srfi/srfi-8.scm +++ b/srfi/srfi-8.scm @@ -1,48 +1,56 @@ -;;;; srfi-8.scm --- SRFI-8 procedures for Guile +;;; srfi-8.scm --- receive -;;; Copyright (C) 2000, 2001 Free Software Foundation, Inc. -;;; -;;; This program is free software; you can redistribute it and/or -;;; modify it under the terms of the GNU General Public License as -;;; published by the Free Software Foundation; either version 2, or -;;; (at your option) any later version. -;;; -;;; This program is distributed in the hope that it will be useful, -;;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;;; General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with this software; see the file COPYING. If not, write to -;;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, -;;; Boston, MA 02111-1307 USA -;;; -;;; As a special exception, the Free Software Foundation gives permission -;;; for additional uses of the text contained in its release of GUILE. -;;; -;;; The exception is that, if you link the GUILE library with other files -;;; to produce an executable, this does not by itself cause the -;;; resulting executable to be covered by the GNU General Public License. -;;; Your use of that executable is in no way restricted on account of -;;; linking the GUILE library code into it. -;;; -;;; This exception does not however invalidate any other reasons why -;;; the executable file might be covered by the GNU General Public License. -;;; -;;; This exception applies only to the code released by the -;;; Free Software Foundation under the name GUILE. If you copy -;;; code from other Free Software Foundation releases into a copy of -;;; GUILE, as the General Public License permits, the exception does -;;; not apply to the code that you add in this way. To avoid misleading -;;; anyone as to the status of such modified files, you must delete -;;; this exception notice from them. -;;; -;;; If you write modifications of your own for GUILE, it is your choice -;;; whether to permit this exception to apply to your modifications. -;;; If you do not wish that, delete this exception notice. +;; Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. +;; +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License as +;; published by the Free Software Foundation; either version 2, or +;; (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with this software; see the file COPYING. If not, write to +;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, +;; Boston, MA 02111-1307 USA +;; +;; As a special exception, the Free Software Foundation gives permission +;; for additional uses of the text contained in its release of GUILE. +;; +;; The exception is that, if you link the GUILE library with other files +;; to produce an executable, this does not by itself cause the +;; resulting executable to be covered by the GNU General Public License. +;; Your use of that executable is in no way restricted on account of +;; linking the GUILE library code into it. +;; +;; This exception does not however invalidate any other reasons why +;; the executable file might be covered by the GNU General Public License. +;; +;; This exception applies only to the code released by the +;; Free Software Foundation under the name GUILE. If you copy +;; code from other Free Software Foundation releases into a copy of +;; GUILE, as the General Public License permits, the exception does +;; not apply to the code that you add in this way. To avoid misleading +;; anyone as to the status of such modified files, you must delete +;; this exception notice from them. +;; +;; If you write modifications of your own for GUILE, it is your choice +;; whether to permit this exception to apply to your modifications. +;; If you do not wish that, delete this exception notice. + +;;; Commentary: + +;; This module is fully documented in the Guile Reference Manual. + +;;; Code: (define-module (srfi srfi-8) :use-module (ice-9 receive) :re-export-syntax (receive)) (cond-expand-provide (current-module) '(srfi-8)) + +;;; srfi-8.scm ends here diff --git a/srfi/srfi-9.scm b/srfi/srfi-9.scm index b36b11f4e..5a6591e5b 100644 --- a/srfi/srfi-9.scm +++ b/srfi/srfi-9.scm @@ -1,85 +1,85 @@ -;;;; srfi-9.scm --- SRFI-9 procedures for Guile -;;;; -;;;; Copyright (C) 2001 Free Software Foundation, Inc. -;;;; -;;;; This program is free software; you can redistribute it and/or -;;;; modify it under the terms of the GNU General Public License as -;;;; published by the Free Software Foundation; either version 2, or -;;;; (at your option) any later version. -;;;; -;;;; This program is distributed in the hope that it will be useful, -;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;;;; General Public License for more details. -;;;; -;;;; You should have received a copy of the GNU General Public License -;;;; along with this software; see the file COPYING. If not, write to -;;;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, -;;;; Boston, MA 02111-1307 USA -;;;; -;;;; As a special exception, the Free Software Foundation gives permission -;;;; for additional uses of the text contained in its release of GUILE. -;;;; -;;;; The exception is that, if you link the GUILE library with other files -;;;; to produce an executable, this does not by itself cause the -;;;; resulting executable to be covered by the GNU General Public License. -;;;; Your use of that executable is in no way restricted on account of -;;;; linking the GUILE library code into it. -;;;; -;;;; This exception does not however invalidate any other reasons why -;;;; the executable file might be covered by the GNU General Public License. -;;;; -;;;; This exception applies only to the code released by the -;;;; Free Software Foundation under the name GUILE. If you copy -;;;; code from other Free Software Foundation releases into a copy of -;;;; GUILE, as the General Public License permits, the exception does -;;;; not apply to the code that you add in this way. To avoid misleading -;;;; anyone as to the status of such modified files, you must delete -;;;; this exception notice from them. -;;;; -;;;; If you write modifications of your own for GUILE, it is your choice -;;;; whether to permit this exception to apply to your modifications. -;;;; If you do not wish that, delete this exception notice. +;;; srfi-9.scm --- define-record-type + +;; Copyright (C) 2001, 2002 Free Software Foundation, Inc. +;; +;; This program is free software; you can redistribute it and/or +;; modify it under the terms of the GNU General Public License as +;; published by the Free Software Foundation; either version 2, or +;; (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with this software; see the file COPYING. If not, write to +;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, +;; Boston, MA 02111-1307 USA +;; +;; As a special exception, the Free Software Foundation gives permission +;; for additional uses of the text contained in its release of GUILE. +;; +;; The exception is that, if you link the GUILE library with other files +;; to produce an executable, this does not by itself cause the +;; resulting executable to be covered by the GNU General Public License. +;; Your use of that executable is in no way restricted on account of +;; linking the GUILE library code into it. +;; +;; This exception does not however invalidate any other reasons why +;; the executable file might be covered by the GNU General Public License. +;; +;; This exception applies only to the code released by the +;; Free Software Foundation under the name GUILE. If you copy +;; code from other Free Software Foundation releases into a copy of +;; GUILE, as the General Public License permits, the exception does +;; not apply to the code that you add in this way. To avoid misleading +;; anyone as to the status of such modified files, you must delete +;; this exception notice from them. +;; +;; If you write modifications of your own for GUILE, it is your choice +;; whether to permit this exception to apply to your modifications. +;; If you do not wish that, delete this exception notice. ;;; Commentary: -;;; This module exports the syntactic form `define-record-type', which -;;; is the means for creating record types defined in SRFI-9. -;;; -;;; The syntax of a record type definition is: -;;; -;;; -;;; -> (define-record-type -;;; ( ...) -;;; -;;; ...) -;;; -;;; -> ( ) -;;; -> ( ) -;;; -;;; -> -;;; <... name> -> -;;; -;;; Usage example: -;;; -;;; guile> (use-modules (srfi srfi-9)) -;;; guile> (define-record-type :foo (make-foo x) foo? -;;; (x get-x) (y get-y set-y!)) -;;; guile> (define f (make-foo 1)) -;;; guile> f -;;; #<:foo x: 1 y: #f> -;;; guile> (get-x f) -;;; 1 -;;; guile> (set-y! f 2) -;;; 2 -;;; guile> (get-y f) -;;; 2 -;;; guile> f -;;; #<:foo x: 1 y: 2> -;;; guile> (foo? f) -;;; #t -;;; guile> (foo? 1) -;;; #f +;; This module exports the syntactic form `define-record-type', which +;; is the means for creating record types defined in SRFI-9. +;; +;; The syntax of a record type definition is: +;; +;; +;; -> (define-record-type +;; ( ...) +;; +;; ...) +;; +;; -> ( ) +;; -> ( ) +;; +;; -> +;; <... name> -> +;; +;; Usage example: +;; +;; guile> (use-modules (srfi srfi-9)) +;; guile> (define-record-type :foo (make-foo x) foo? +;; (x get-x) (y get-y set-y!)) +;; guile> (define f (make-foo 1)) +;; guile> f +;; #<:foo x: 1 y: #f> +;; guile> (get-x f) +;; 1 +;; guile> (set-y! f 2) +;; 2 +;; guile> (get-y f) +;; 2 +;; guile> f +;; #<:foo x: 1 y: 2> +;; guile> (foo? f) +;; #t +;; guile> (foo? 1) +;; #f ;;; Code: @@ -112,3 +112,5 @@ (else (error "invalid field spec " spec)))) field-specs))) + +;;; srfi-9.scm ends here