add mzscheme.scrbl
svn: r8531
This commit is contained in:
parent
096ec546a6
commit
5988c32a90
113
collects/mzscheme/mzscheme.scrbl
Normal file
113
collects/mzscheme/mzscheme.scrbl
Normal file
|
@ -0,0 +1,113 @@
|
||||||
|
#lang scribble/doc
|
||||||
|
@(require scribble/manual
|
||||||
|
(for-label mzscheme
|
||||||
|
(only-in r5rs set-car! set-cdr!)
|
||||||
|
(only-in scheme/base
|
||||||
|
exact-nonnegative-integer?
|
||||||
|
exact-positive-integer?
|
||||||
|
syntax?
|
||||||
|
#%plain-lambda #%plain-app
|
||||||
|
syntax->datum datum->syntax)))
|
||||||
|
|
||||||
|
@(define-syntax-rule (def-base base-define
|
||||||
|
base-free-identifier=? base-free-template-identifier=?
|
||||||
|
base-free-transformer-identifier=? base-free-label-identifier=?)
|
||||||
|
(begin
|
||||||
|
(require (for-label scheme/base))
|
||||||
|
(define base-define (scheme define))
|
||||||
|
(define base-free-identifier=? (scheme base-free-identifier=?))
|
||||||
|
(define base-free-template-identifier=? (scheme base-free-template-identifier=?))
|
||||||
|
(define base-free-transformer-identifier=? (scheme base-free-transformer-identifier=?))
|
||||||
|
(define base-free-label-identifier=? (scheme base-free-label-identifier=?))))
|
||||||
|
@(def-base base-define
|
||||||
|
base-free-identifier=? base-free-template-identifier=?
|
||||||
|
base-free-transformer-identifier=? base-free-label-identifier=?)
|
||||||
|
|
||||||
|
|
||||||
|
@title{@bold{MzScheme}: Legacy Module Language}
|
||||||
|
|
||||||
|
@defmodule[mzscheme]{
|
||||||
|
|
||||||
|
The @schememodname[mzscheme] language provides nearly the same
|
||||||
|
bindings as the @schememodname[mzscheme] module of PLT Scheme version
|
||||||
|
372 and earlier.}
|
||||||
|
|
||||||
|
Unlike old version, the @schememodname[mzscheme] language does not
|
||||||
|
include @scheme[set-car!] or @scheme[set-cdr!], and @scheme[cons]
|
||||||
|
makes immutable pairs, as in @scheme[scheme/base]; those changes make
|
||||||
|
modules built on @schememodname[mzscheme] reasonably compatible with
|
||||||
|
modules built on @schememodname[scheme/base].
|
||||||
|
|
||||||
|
Otherwise, the @schememodname[mzscheme] language provides some
|
||||||
|
functions in @schememodname[scheme/base] under old names, such as
|
||||||
|
@scheme[syntax-object->datum] instead of @scheme[syntax->datum], and
|
||||||
|
it provides old versions of some syntactic forms, such as
|
||||||
|
@scheme[lambda] without support for keyword and optional arguments.
|
||||||
|
|
||||||
|
@table-of-contents[]
|
||||||
|
|
||||||
|
@; ----------------------------------------
|
||||||
|
|
||||||
|
@section{Old Syntactic Forms}
|
||||||
|
|
||||||
|
@defform[(lambda formals body ...+)]{
|
||||||
|
|
||||||
|
The same as @scheme[#%plain-lambda].}
|
||||||
|
|
||||||
|
|
||||||
|
@defform*[[(#%app proc-expr arg-expr ...)
|
||||||
|
(#%app)]]{
|
||||||
|
|
||||||
|
The same as @scheme[#%plain-app].}
|
||||||
|
|
||||||
|
|
||||||
|
@defform*/subs[[(define id expr)
|
||||||
|
(define (head args) body ...+)]
|
||||||
|
([head id
|
||||||
|
(head args)]
|
||||||
|
[args (code:line arg-id ...)
|
||||||
|
(code:line arg-id ... #, @schemeparenfont{.} rest-id)])]{
|
||||||
|
|
||||||
|
Like @|base-define| in @schememodname[scheme/base], but without
|
||||||
|
support for keyword arguments or optional arguments.}
|
||||||
|
|
||||||
|
@; ----------------------------------------
|
||||||
|
|
||||||
|
@section{Old Functions}
|
||||||
|
|
||||||
|
@defproc[(syntax-object->datum [stx syntax?]) any]{
|
||||||
|
|
||||||
|
The same as @scheme[syntax->datum].}
|
||||||
|
|
||||||
|
@defproc[(datum->syntax-object [ctxt (or/c syntax? false/c)]
|
||||||
|
[v any/c]
|
||||||
|
[srcloc (or/c syntax? false/c
|
||||||
|
(list/c any/c
|
||||||
|
(or/c exact-positive-integer? false/c)
|
||||||
|
(or/c exact-nonnegative-integer? false/c)
|
||||||
|
(or/c exact-nonnegative-integer? false/c)
|
||||||
|
(or/c exact-positive-integer? false/c)))]
|
||||||
|
[prop (or/c syntax? false/c) #f]
|
||||||
|
[cert (or/c syntax? false/c) #f])
|
||||||
|
syntax?]{
|
||||||
|
|
||||||
|
The same as @scheme[datum->syntax].}
|
||||||
|
|
||||||
|
|
||||||
|
@defproc[(module-identifier=? [a-id syntax?][b-id syntax?]) boolean?]{
|
||||||
|
|
||||||
|
The same as @base-free-identifier=? in @schememodname[scheme/base].}
|
||||||
|
|
||||||
|
@defproc[(module-transformer-identifier=? [a-id syntax?][b-id syntax?]) boolean?]{
|
||||||
|
|
||||||
|
The same as @base-free-transformer-identifier=? in @schememodname[scheme/base].}
|
||||||
|
|
||||||
|
@defproc[(module-template-identifier=? [a-id syntax?][b-id syntax?]) boolean?]{
|
||||||
|
|
||||||
|
The same as @base-free-template-identifier=? in @schememodname[scheme/base].}
|
||||||
|
|
||||||
|
@defproc[(module-label-identifier=? [a-id syntax?][b-id syntax?]) boolean?]{
|
||||||
|
|
||||||
|
The same as @base-free-label-identifier=? in @schememodname[scheme/base].}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user