1 |
;;;; srfi-4.scm --- Homogeneous numeric vector datatypes. |
;;; srfi-4.scm --- Homogeneous Numeric Vector Datatypes |
2 |
;;;; |
|
3 |
;;;; Copyright (C) 2001 Free Software Foundation, Inc. |
;; Copyright (C) 2001, 2002 Free Software Foundation, Inc. |
4 |
;;;; |
;; |
5 |
;;;; This program is free software; you can redistribute it and/or |
;; This program is free software; you can redistribute it and/or |
6 |
;;;; modify it under the terms of the GNU General Public License as |
;; modify it under the terms of the GNU General Public License as |
7 |
;;;; published by the Free Software Foundation; either version 2, or |
;; published by the Free Software Foundation; either version 2, or |
8 |
;;;; (at your option) any later version. |
;; (at your option) any later version. |
9 |
;;;; |
;; |
10 |
;;;; This program is distributed in the hope that it will be useful, |
;; This program is distributed in the hope that it will be useful, |
11 |
;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 |
;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
13 |
;;;; General Public License for more details. |
;; General Public License for more details. |
14 |
;;;; |
;; |
15 |
;;;; You should have received a copy of the GNU General Public License |
;; You should have received a copy of the GNU General Public License |
16 |
;;;; along with this software; see the file COPYING. If not, write to |
;; along with this software; see the file COPYING. If not, write to |
17 |
;;;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, |
;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330, |
18 |
;;;; Boston, MA 02111-1307 USA |
;; Boston, MA 02111-1307 USA |
19 |
;;;; |
;; |
20 |
;;;; As a special exception, the Free Software Foundation gives permission |
;; As a special exception, the Free Software Foundation gives permission |
21 |
;;;; for additional uses of the text contained in its release of GUILE. |
;; for additional uses of the text contained in its release of GUILE. |
22 |
;;;; |
;; |
23 |
;;;; The exception is that, if you link the GUILE library with other files |
;; The exception is that, if you link the GUILE library with other files |
24 |
;;;; to produce an executable, this does not by itself cause the |
;; to produce an executable, this does not by itself cause the |
25 |
;;;; resulting executable to be covered by the GNU General Public License. |
;; resulting executable to be covered by the GNU General Public License. |
26 |
;;;; Your use of that executable is in no way restricted on account of |
;; Your use of that executable is in no way restricted on account of |
27 |
;;;; linking the GUILE library code into it. |
;; linking the GUILE library code into it. |
28 |
;;;; |
;; |
29 |
;;;; This exception does not however invalidate any other reasons why |
;; This exception does not however invalidate any other reasons why |
30 |
;;;; the executable file might be covered by the GNU General Public License. |
;; the executable file might be covered by the GNU General Public License. |
31 |
;;;; |
;; |
32 |
;;;; This exception applies only to the code released by the |
;; This exception applies only to the code released by the |
33 |
;;;; Free Software Foundation under the name GUILE. If you copy |
;; Free Software Foundation under the name GUILE. If you copy |
34 |
;;;; code from other Free Software Foundation releases into a copy of |
;; code from other Free Software Foundation releases into a copy of |
35 |
;;;; GUILE, as the General Public License permits, the exception does |
;; GUILE, as the General Public License permits, the exception does |
36 |
;;;; not apply to the code that you add in this way. To avoid misleading |
;; not apply to the code that you add in this way. To avoid misleading |
37 |
;;;; anyone as to the status of such modified files, you must delete |
;; anyone as to the status of such modified files, you must delete |
38 |
;;;; this exception notice from them. |
;; this exception notice from them. |
39 |
;;;; |
;; |
40 |
;;;; If you write modifications of your own for GUILE, it is your choice |
;; If you write modifications of your own for GUILE, it is your choice |
41 |
;;;; whether to permit this exception to apply to your modifications. |
;; whether to permit this exception to apply to your modifications. |
42 |
;;;; If you do not wish that, delete this exception notice. |
;; If you do not wish that, delete this exception notice. |
43 |
|
|
44 |
|
;;; Author: Martin Grabmueller <mgrabmue@cs.tu-berlin.de> |
45 |
|
|
46 |
;;; Commentary: |
;;; Commentary: |
47 |
|
|
48 |
;;; This module implements homogeneous numeric vectors as defined in SRFI-4. |
;; This module implements homogeneous numeric vectors as defined in SRFI-4. |
49 |
|
;; This module is fully documented in the Guile Reference Manual. |
50 |
|
|
51 |
;;; Code: |
;;; Code: |
52 |
|
|
|
;;; Author: Martin Grabmueller <mgrabmue@cs.tu-berlin.de> |
|
|
|
|
53 |
(define-module (srfi srfi-4) |
(define-module (srfi srfi-4) |
54 |
:export ( |
:export ( |
55 |
;;; Unsigned 8-bit vectors. |
;;; Unsigned 8-bit vectors. |
158 |
(else |
(else |
159 |
(error "syntax error in #u...() vector literal")))) |
(error "syntax error in #u...() vector literal")))) |
160 |
(error "syntax error in #u...() vector literal"))) |
(error "syntax error in #u...() vector literal"))) |
161 |
|
|
162 |
|
|
163 |
;; Reader extension for #s8(), #s16(), #s32() and #s64() vectors. |
;; Reader extension for #s8(), #s16(), #s32() and #s64() vectors. |
164 |
;; |
;; |
191 |
(else |
(else |
192 |
(error "syntax error in #s...() vector literal")))) |
(error "syntax error in #s...() vector literal")))) |
193 |
(error "syntax error in #s...() vector literal"))) |
(error "syntax error in #s...() vector literal"))) |
194 |
|
|
195 |
|
|
196 |
;; Install the hash extensions. |
;; Install the hash extensions. |
197 |
;; |
;; |
198 |
(read-hash-extend #\f hash-f) |
(read-hash-extend #\f hash-f) |
199 |
(read-hash-extend #\u hash-u) |
(read-hash-extend #\u hash-u) |
200 |
(read-hash-extend #\s hash-s) |
(read-hash-extend #\s hash-s) |
201 |
|
|
202 |
|
;;; srfi-4.scm ends here |