R7RS small language

发布于 2022-10-15 09:25:04 字数 4750 浏览 38 评论 0

R7RS.pdf

新特性:
* 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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

星軌x 2022-10-22 09:25:04

R7RS small language 的最后一个手稿已经出来了,最终版即将推出
很期待

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文