Changes between Version 1 and Version 2 of DSSSLVsScheme


Ignore:
Timestamp:
04/25/10 00:33:49 (7 years ago)
Author:
cowan
Comment:

Added more details

Legend:

Unmodified
Added
Removed
Modified
  • DSSSLVsScheme

    v1 v2  
    1919    * You may not redefine a defined identifier. 
    2020    * Improper lambda-lists are not allowed. 
    21     * A definition may refer to identifiers that are defined in later definitions. 
     21    * A definition may refer to identifiers that are defined in later definitions, not only within `lambda`-expressions, but anywhere. 
     22    * Internal definitions are equivalent to `letrec`. 
    2223    * You may redefine a built-in identifier such as `car`, and such redefinitions are pervasive. 
    2324    * `Case` uses `equal?` to match keys, since `eqv?` does not exist. 
    2425    * Numbers are restricted to exact integers and inexact rationals. 
    25     * Exact integers must include the range -2^31^-1 to 2^31^-1. 
     26    * Exact integers must include the range -2^31^-1 to 2^31^-1 and may be larger. 
    2627    * `#i` and `#e` syntax are not supported. 
    2728 
    2829DSSSL extensions: 
    29     * Complex lambda-lists are provided, with flags `#!optional, #!rest, #!key`. 
     30    * Complex `lambda`-lists are provided, with flags `#!optional, #!rest, #!key`.  These three are self-defining named constants when used outside `lambda`-lists. 
    3031    * Keywords are runtime objects, with procedures `keyword?, keyword->string, string->keyword`. 
    31     * Quantities are a superset of numbers: the primitive unit is meters, written `m` (e.g. `1m` for 1 meter). 
     32    * Quantities are a superset of numbers: the primitive unit is meters, written `m` (e.g. `1m` for 1 meter).  Standard derived units are `cm mm in pt pica`, and new derived units (but not new primitive units) may be added with `define-unit`. 
    3233    * Numeric literals with a decimal point, an exponent, or a unit are inexact; all others are exact. 
    33     * The procedures `exact? inexact? = < > <= >= zero? positive? negative? odd? even? max min + - & / abs atan` (with two arguments) `sqrt` apply to quantities as well as numbers. 
    34     * `define-unit` allows the definition of additional units derived from meters (e.g. `cm`), but no new primitive units can be created. 
     34    * The procedures `exact?, inexact?, =, <, >, <=, >=, zero?, positive?, negative?, odd?, even?, max, min, +, -, *, /, abs atan` (with two arguments), `sqrt` apply to quantities as well as numbers. 
    3535    * `quantity->number` strips the unit from a quantity. 
    36     * `format-number` converts a number to a string containing ordinary numbers, numbers with leading zeros, letters, or Roman numerals. 
     36    * `format-number` converts a number to a string containing ordinary numbers, numbers with leading zeros, letters, or Roman numerals.  `format-number-list` applies to a 
    3737    * Characters have (immutable) property lists, where the properties are keywords: one property is `numeric-equiv:`. 
    3838    * Language objects specify collation and case conversion; procedures are `language?, current-language, with-language`. 
    39     * Date and time procedures are provided: `time, time->string, time<?, time>?, time<=?, time>=` (the last four apply to ISO 8601 timestamp strings). 
     39    * Non-Scheme procedures can be accessed with `external-procedure`, which returns a corresponding Scheme procedure, which should be pure functional. 
     40    * Date and time procedures are provided: `time` returns the current time since the 1970 Epoch as an integer; `time->string, time<?, time>?, time<=?, time>=` generate and compare ISO 8601 timestamp strings. 
    4041    * `error` signals an error; it has one argument, a string.