summaryrefslogtreecommitdiff
path: root/srfi/srfi-16.scm
diff options
context:
space:
mode:
authorThien-Thi Nguyen <ttn@gnuvola.org>2002-03-28 01:39:12 +0000
committerThien-Thi Nguyen <ttn@gnuvola.org>2002-03-28 01:39:12 +0000
commit6be07c52784bacfa1ed218cf1145a62181c1799f (patch)
treed1d6b79dce9505406e2e7c28f81ac4088a301d00 /srfi/srfi-16.scm
parent0706ae06dcef28b7639692d27f054b0db5c3cdde (diff)
downloadguile-6be07c52784bacfa1ed218cf1145a62181c1799f.tar.gz
Update copyright.
Point to manual in commentary; nfc.
Diffstat (limited to 'srfi/srfi-16.scm')
-rw-r--r--srfi/srfi-16.scm135
1 files changed, 69 insertions, 66 deletions
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.
+;; 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:
+;;; Author: Martin Grabmueller
-;;; 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>
-;;; --> (case-lambda <case-lambda-clause>)
-;;; <case-lambda-clause>
-;;; --> (<signature> <definition-or-command>*)
-;;; <signature>
-;;; --> (<identifier>*)
-;;; | (<identifier>* . <identifier>)
-;;; | <identifier>
-;;;
-;;; 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.
+;;; Commentary:
-;;; Author: Martin Grabmueller
+;; 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>
+;; --> (case-lambda <case-lambda-clause>)
+;; <case-lambda-clause>
+;; --> (<signature> <definition-or-command>*)
+;; <signature>
+;; --> (<identifier>*)
+;; | (<identifier>* . <identifier>)
+;; | <identifier>
+;;
+;; 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