1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-01 04:10:18 +02:00

* null.scm, r5rs.scm, safe-r5rs.scm, safe.scm: New modules.

This commit is contained in:
Mikael Djurfeldt 2000-06-21 01:17:28 +00:00
parent 90847923a4
commit affb914f39
4 changed files with 263 additions and 0 deletions

38
ice-9/null.scm Normal file
View file

@ -0,0 +1,38 @@
;;;; Copyright (C) 2000 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
;;;;
;;;; The null environment - only syntactic bindings
(define-module (ice-9 null)
:use-module (ice-9 syncase))
(export define quote lambda if set!
cond case and or
let let* letrec
begin do
delay
quasiquote unquote unquote-splicing
define-syntax
let-syntax letrec-syntax
)

51
ice-9/r5rs.scm Normal file
View file

@ -0,0 +1,51 @@
;;;; Copyright (C) 2000 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
;;;;
;;;; R5RS bindings
(define-module (ice-9 r5rs))
(module-use! %module-public-interface (resolve-interface '(ice-9 safe-r5rs)))
(export scheme-report-environment
interaction-environment
call-with-input-file call-with-output-file
with-input-from-file with-output-to-file
open-input-file open-output-file
close-input-port close-output-port
load
;;transcript-on
;;transcript-off
)
(define scheme-report-interface %module-public-interface)
(define (scheme-report-environment n)
(if (not (= n 5))
(scm-error 'misc-error 'scheme-report-environment
"~A is not a valid version"
(list n)
'()))
scheme-report-interface)
(define interaction-interface (resolve-interface '(guile-user)))
(define (interaction-environment)
interaction-interface)

143
ice-9/safe-r5rs.scm Normal file
View file

@ -0,0 +1,143 @@
;;;; Copyright (C) 2000 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
;;;;
;;;; Safe subset of R5RS bindings
(define-module (ice-9 safe-r5rs))
(module-use! %module-public-interface (resolve-interface '(ice-9 null)))
(export eqv? eq? equal?
number? complex? real? rational? integer?
exact? inexact?
= < > <= >=
zero? positive? negative? odd? even?
max min
+ * - /
abs
quotient remainder modulo
gcd lcm
numerator denominator
floor ceiling truncate round
rationalize
exp log sin cos tan asin acos atan
sqrt
expt
make-rectangualr make-polar real-part imag-part magnitude angle
exact->inexact inexact->exact
number->string string->number
boolean?
not
pair?
cons car cdr
set-car! set-cdr!
caar cadr cdar cddr
caaar caadr cadar caddr cdaar cdadr cddar cdddr
caaaar caaadr caadar caaddr cadaar cadadr caddar cadddr
cdaaar cdaadr cdadar cdaddr cddaar cddadr cdddar cddddr
null?
list?
length
append
reverse
list-tail list-ref
memq memv member
assq assv assoc
symbol?
symbol->string string->symbol
char?
char=? char<? char>? char<=? char>=?
char-ci=? char-ci<? char-ci>? char-ci<=? char-ci>=?
char-alphabetic? char-numeric? char-whitespace?
char-upper-case? char-lower-case?
char->integer integer->char
char-upcase
char-downcase
string?
make-string
string
string-length
string-ref string-set!
string=? string-ci=?
string<? string>? string<=? string>=?
string-ci<? string-ci>? string-ci<=? string-ci>=?
substring
string-length
string-append
string->list list->string
string-copy string-fill!
vector?
make-vector
vector
vector-length
vector-ref vector-set!
vector->list list->vector
vector-fill!
procedure?
apply
map
for-each
force
call-with-current-continuation
values
call-with-values
dynamic-wind
eval
null-environment
input-port? output-port?
current-input-port current-output-port
read
read-char
peek-char
eof-object?
char-ready?
write
display
newline
write-char
;;transcript-on
;;transcript-off
)
(define eval eval-in-module)
(define null-interface (make-module 31))
(set-module-kind! null-interface 'interface)
(define (null-environment n)
(if (not (= n 5))
(scm-error 'misc-error 'null-environment
"~A is not a valid version"
(list n)
'()))
null-interface)

31
ice-9/safe.scm Normal file
View file

@ -0,0 +1,31 @@
;;;; Copyright (C) 2000 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
;;;;
;;;; Safe subset of R5RS bindings
(define-module (ice-9 safe))
(define safe-r5rs-interface (resolve-interface '(ice-9 safe-r5rs)))
(define-public (safe-environment n)
(if (not (= n 5))
(scm-error 'misc-error 'safe-environment
"~A is not a valid version"
(list n)
'()))
safe-r5rs-interface)