[CM] R7RS support

Rudolf Adamkovič salutis at me.com
Mon Jan 17 07:36:18 PST 2022

Hi there!

At Egghead Games, we would like to use Scheme for in-app scripting.  We
wired up s7 and SQLite to kick things off, but s7 support for R7RS does
not seem to work.  Below, I include some examples to illustrate my

A basic example from the R7RS standard, page 54, …

    (lambda (x)
      (display "something went wrong\n"))
  (lambda ()
    (+ 1 (raise ’an-error))))

… results in:

> Error: catch error handler should accept two arguments: #<lambda (x)>

The simplest library …

(load "r7rs.scm")
(define-library (some lib)
  (export some-proc)
  (import (scheme base)
          (scheme r5rs))
    (define (some-proc x)
      (display x))))

… results in:

> Error: symbol->value first argument, {gensym}-1, is a macro but should
> be a symbol (define-macro ({gensym}-1 . names)...

We picked s7 because the website says …

> I believe it is compatible with r5rs and r7r

… but per a quick grep, there seem to exist no tests for define-library
or with-exception-handler.

Any ideas?

"Logic is a science of the necessary laws of thought, without which no
employment of the understanding and the reason takes place." -- Immanuel
Kant, 1785

Rudolf Adamkovič <salutis at me.com> [he/him]
Studenohorská 25
84103 Bratislava

More information about the Cmdist mailing list