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. For a version of this page that may be more recent, see LetSettingsKendal in WG2's repo for R7RS-large.


2013-03-15 23:56:02

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.)


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