[PLT announcement] PLT Scheme v4.0

From: Eli Barzilay (eli at barzilay.org)
Date: Thu Jun 12 02:03:23 EDT 2008

PLT Scheme version 4.0 is now available from


This major new release offers many improvements over version 372, and
we encourage everyone to upgrade.

  * The PLT Scheme language now provides better syntax for modules,
    better support for optional and keyword arguments to functions, a
    more complete syntax for structure types, new syntax for list
    comprehensions and iterations, a more complete and consistent set
    of list operations, a more complete set of string operations, and
    streamlined hash-table operations.

  * The documentation has been re-organized and re-written.  New
    tutorials and overviews offer a clearer introduction to Scheme and
    PLT Scheme.

  * New documentation tools help programmers create and install
    documentation for libraries and Planet packages.  All installed
    documentation can be read though the user's web browser, and even
    searching within the browser works on local files.

    The language for writing documentation is an extension of Scheme,
    and document sources are linked to implementations through the
    module system.  The module connection allows, for example,
    reliable automatic hyperlinking of identifiers mentioned in
    documentation to their specifications in other documentation.

  * R6RS programs are supported in two ways: though the `plt-r6rs'
    executable and through the `#!r6rs' prefix.  The latter allows an
    R6RS library or program to serve as a PLT Scheme module.

  * Legacy R5RS support is improved, partly through a separate
    `plt-r5rs' executable.

  * Pairs are immutable within the PLT Scheme language; mutable pairs
    (which are the same as R6RS and R5RS pairs) are provided as a
    separate datatype.  For more information, see


  * ProfessorJ uses a new and improved parser, it evaluates programs
    faster, and it includes a Java-specific indenter.

  * Testing frameworks for the HtDP and HtDC (ProfessorJ) teaching
    languages have been unified.  Both support systematic unit testing
    in a comprehensive fashion.  When programs lack tests, students
    are asked to add test cases.  When all tests succeed, a simple
    message says so; otherwise, a pop-up window (dockable) displays
    URLs to the failed test cases and explains why the cases failed.

  * Typed Scheme, a statically typed dialect of Scheme, is now
    included with PLT Scheme.  While Typed Scheme is still in its
    early stages of development, it supports modular programming with
    types and full interaction with existing untyped code.  Safe
    interactions between typed and untyped modules are enforced via
    contracts.  Typed Scheme also features a novel type system
    designed to accommodate Scheme programming idioms.  For more
    information, see http://www.ccs.neu.edu/~samth/typed-scheme/ .

Feedback Welcome,
          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                  http://www.barzilay.org/                 Maze is Life!

Posted on the announce mailing list.