This site is a static rendering of the Trac instance that was used by R7RS-WG1 for its work on R7RS-small (PDF), which was ratified in 2013. For more information, see Home.

Source for wiki LetSettingsKendal version 2

author

cowan

comment


    

ipnr

173.13.139.236

name

LetSettingsKendal

readonly

0

text

SettingsListsCowan is nice, but would be even better with some syntax for using settings lists in
one's own procedures, perhaps:

`(let-settings (`''keywords''` `''settings-list''`) . `''body''`)`

where ''keywords'' is a list of symbol names to extract from the ''settings-list'',
which will be bound to the named values in the current environment. The
`open-input-process` procedures from ProcessPortsCowan might then be defined thus
for the case where their ''filename'' argument is a list:

{{{
   (define (open-[input|output|input/output]-process filename)
     (let-settings ((path arguments environment
                     stdin-redirection stdout-redirection) filename)
       ...
       (execvp path arguments environment) ; or whatever
       ...))
}}}

(It could be written in terms of a `call-with-settings` procedure, of course.)

== Issues ==

How does one tell if a key is not present?  Bind to `#f`?  Bind to a default specified as a third value?  Ideally, each key should have its own default, but that may be too heavyweight.  --JC

time

2013-03-15 23:56:02

version

2