Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

R7RS

Name: Anonymous 2011-04-18 7:12

First draft of R7RS small language

http://trac.sacrideo.us/wg/attachment/wiki/WikiStart/r7rs-draft-1.pdf

List of changes:

* Modules have been added as a new program structure to improve
  encapsulation and sharing of code. Some existing and new
  identifiers have been factored out into separate modules.

* Exceptions can now be signalled explicitly with raise,
  raise-continuable or error, and can be handled with
  with-exception-handler and the guard syntax.

* New disjoint types supporting access to multiple fields can be
  generated with define-record-type.

* Parameter objects can be created with make-parameter, and
  dynamically rebound with parameterize.

* Blobs, homogeneous vectors of integers in the range [0..255],
  have been added as a new disjoint type.

* Ports can now be designated as binary or character ports, with
  new procedures for reading and writing binary data.

* String ports have been added as a way to write characters to
  and read characters from strings.

* Current-input-port and current-output-port are now parameter
  objects, along with the newly introduced current-error-port.

* Syntax-rules now recognizes as a wildcard, allows the ellipsis
  symbol to be specified explicitly instead of the default ...,
  allows template escapes with an ellipsis-prefixed list, and
  allows tail patterns to follow an ellipsis pattern.

* Syntax-error has been added as a way to signal immediate and
  more informative errors when a form is expanded.

* Internal define-syntax forms are now allowed preceding any
  internal defines.

* Letrec* has been added, and internal define specified in terms
  of it.

* Case now supports a => syntax analagous to cond.

* Case-lambda has been added to the base library as a way to
  dispatch on the number of arguments passed to a procedure.

* Positive and negative infinity and a NaN object have been added
  to the numeric tower as inexact values with the written
  representations +inf.0, -inf.0 and +nan.0, respectively.

* Map and for-each are now required to terminate on the shortest
  list when inputs have different length.

* Member and assoc now take an optional third argument for the
  equality predicate to use.

* Exact-integer? and exact-integer-sqrt have been added.

* Make-list, copy-list, list-set!, string-map, string-for-each,
  string->vector, copy-vector, vector-map, vector-for-each, and
  vector->string have been added to round out the sequence
  operations.

* The set of characters used is required to be consistent with
  the latest Unicode standard only in so far as the
  implementation supports Unicode.

* string-ni=? and related procedures have been added to compare
  strings as though they had gone through an
  implementation-defined normalization, without exposing the
  normalization.

* The case-folding behavior of the reader can now be explicitly
  controlled, with no folding as the default.

* The reader now recognizes the new comment syntax #; to skip the
  next datum, and allows nested block comments with #| ... |#.

* Data prefixed with reader labels #<n>= can be referenced with
  #<n># allowing for reading and writing of data with shared
  structure.

* Strings and symbols now allow mnemonic and numeric escape
  sequences, and the list of named characters has been extended.

* File-exists? and delete-file are available in the (scheme file)
  module.

* An interface to the system environment and command line is
  available in the (scheme process-context) module.

* Procedures for accessing the current time are available in
  the (scheme time) module.

* A complete set of integer division operators is available in
  the (scheme division) module.

* Transcript-on and transcript-off have been removed.

Thank you!

Name: Anonymous 2011-04-18 8:58

Blobs?

Name: Anonymous 2011-04-18 9:17

>>6
<jcowan> There will be things that upset you, but it would be very useful for us if you complained about them.
<jcowan> In particular, the word "blob" appears as a deliberate lightning rod.
<foof> The charter asks us to be compatible in as much as makes sense with the R6RS, and in R6RS they're called "bytevector"s
<cky> Right, but does sticking with bytevector make sense?
<Riastradh> Well, `bytevector' is a silly word, but `byte vector', `octet vector', `u8vector', and `blob' are all reasonable.
<jcowan> And the storm is on, the lightning flashes, all the other changes slip by under the radar!

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List