r6rs

R6RS on dead trees?

Is it possible to buy the full R6RS in book form? It has, I believe, been published in the Journal of Functional Programming, but I do not subscribe to it. On the other hand, the full R6RS should be a few hundred pages at most. Is there any way to buy a hard copy? ...

Do you have to use display to output stuff using r6rs?

Background: I am new to scheme, and am using DrScheme to write my programs. The following program outputs 12345 when I run the program as r5rs: 12345 However the following program outputs nothing (it's an r6rs program): #!r6rs (import (rnrs)) 12345 That being said, I can get it to output 12345 by doing this: #!r6rs (import (rnrs...

Why do all procedures have to be defined before the compiler sees them?

For example, take a look at this code (from tspl4): (define proc1 (lambda (x y) (proc2 y x))) If I run this as my program in scheme... #!r6rs (import (rnrs)) (define proc1 (lambda (x y) (proc2 y x))) I get this error: expand: unbound identifier in module in: proc2 ...This code works fine though: #!r6rs (import (rnr...

Can someone explain the concept of 'hygiene' to me (I'm a scheme programmer)?

So... I'm new to scheme r6rs, and am learning macros. Can somebody explain to me what is meant by 'hygiene'? Thanks in advance. ...

How to make just part of a macro hygienic

I'd like to have a version of lambda, called lambda-r, from within which you can return. An example: (+ ((lambda-r () (return 1) 2)) 5) This would give the value 6. Although you might expect the value to be 7, it's 6 because 1 is returned from the lambda-expression before 2 is reached. Here's an example of the kind of transfo...

Scheme pass-by-reference

How can I pass a variable by reference in scheme? An example of the functionality I want: (define foo (lambda (&x) (set! x 5))) (define y 2) (foo y) (display y) ;outputs: 5 Also, is there a way to return by reference? ...

Redefining syntactic keywords in r6rs

How can I create a library called rnrs-modified which will make the following code display "Hello, world!"...? #!r6rs (import (rnrs-modified)) (display set!) or even this would be good (arguably better, actually): #!r6rs (import (rnrs) (modified)) ;or (import (modified) (rnrs)) (display set!) Essentially I want to be able to redefi...

Scheme: Using only R6RS, how do I determine a flonum's mantissa and exponent

Is this possible to extract mantissa and exponent from a float in major R6RS Scheme implementations so that: v = f x b^e f - mantissa b - base e - exponent For example: 3.14 = 0.785 x 2^2 If it's not supported, I'd like to have access to flonum's (IEEE 754) bits directly to approach the problem of extracting the above values, but I'v...