Commit | Line | Data |
---|---|---|
6be07c52 | 1 | ;;; srfi-16.scm --- case-lambda |
6851c8a4 | 2 | |
61d50919 | 3 | ;; Copyright (C) 2001, 2002, 2006, 2009, 2014 Free Software Foundation, Inc. |
6be07c52 | 4 | ;; |
73be1d9e MV |
5 | ;; This library is free software; you can redistribute it and/or |
6 | ;; modify it under the terms of the GNU Lesser General Public | |
7 | ;; License as published by the Free Software Foundation; either | |
83ba2d37 | 8 | ;; version 3 of the License, or (at your option) any later version. |
73be1d9e MV |
9 | ;; |
10 | ;; This library is distributed in the hope that it will be useful, | |
6be07c52 TTN |
11 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
73be1d9e MV |
13 | ;; Lesser General Public License for more details. |
14 | ;; | |
15 | ;; You should have received a copy of the GNU Lesser General Public | |
16 | ;; License along with this library; if not, write to the Free Software | |
92205699 | 17 | ;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
6851c8a4 | 18 | |
6be07c52 | 19 | ;;; Author: Martin Grabmueller |
6851c8a4 | 20 | |
6be07c52 | 21 | ;;; Commentary: |
6851c8a4 | 22 | |
6be07c52 TTN |
23 | ;; Implementation of SRFI-16. `case-lambda' is a syntactic form |
24 | ;; which permits writing functions acting different according to the | |
25 | ;; number of arguments passed. | |
26 | ;; | |
27 | ;; The syntax of the `case-lambda' form is defined in the following | |
28 | ;; EBNF grammar. | |
29 | ;; | |
30 | ;; <case-lambda> | |
31 | ;; --> (case-lambda <case-lambda-clause>) | |
32 | ;; <case-lambda-clause> | |
33 | ;; --> (<signature> <definition-or-command>*) | |
34 | ;; <signature> | |
35 | ;; --> (<identifier>*) | |
36 | ;; | (<identifier>* . <identifier>) | |
37 | ;; | <identifier> | |
38 | ;; | |
39 | ;; The value returned by a `case-lambda' form is a procedure which | |
40 | ;; matches the number of actual arguments against the signatures in | |
41 | ;; the various clauses, in order. The first matching clause is | |
42 | ;; selected, the corresponding values from the actual parameter list | |
43 | ;; are bound to the variable names in the clauses and the body of the | |
44 | ;; clause is evaluated. | |
6851c8a4 MG |
45 | |
46 | ;;; Code: | |
6be07c52 | 47 | |
1a179b03 | 48 | (define-module (srfi srfi-16) |
9a8eb5fb | 49 | #:re-export (case-lambda)) |
6851c8a4 | 50 | |
61d50919 | 51 | ;; Case-lambda is now provided by core psyntax. |