doc λ in HtDP Intm+Lam and Adv
svn: r14540
This commit is contained in:
parent
b07a536ae3
commit
e02aef66a4
|
@ -4,18 +4,24 @@
|
||||||
"prim-ops.ss"
|
"prim-ops.ss"
|
||||||
(for-label lang/htdp-advanced))
|
(for-label lang/htdp-advanced))
|
||||||
|
|
||||||
@(define-syntax-rule (bd intm-define intm-define-struct intm-lambda intm-local intm-letrec intm-let intm-let* intm-time)
|
@(define-syntax-rule (bdl intm-define intm-lambda)
|
||||||
|
(begin
|
||||||
|
(require (for-label lang/htdp-intermediate-lambda))
|
||||||
|
(define intm-define (scheme define))
|
||||||
|
(define intm-lambda (scheme lambda))))
|
||||||
|
@(bdl intm-define intm-lambda)
|
||||||
|
|
||||||
|
@(define-syntax-rule (bd intm-define-struct intm-local intm-letrec intm-let intm-let* intm-time)
|
||||||
(begin
|
(begin
|
||||||
(require (for-label lang/htdp-intermediate))
|
(require (for-label lang/htdp-intermediate))
|
||||||
(define intm-define (scheme define))
|
(define intm-define (scheme define))
|
||||||
(define intm-define-struct (scheme define-struct))
|
(define intm-define-struct (scheme define-struct))
|
||||||
(define intm-lambda (scheme lambda))
|
|
||||||
(define intm-local (scheme local))
|
(define intm-local (scheme local))
|
||||||
(define intm-letrec (scheme letrec))
|
(define intm-letrec (scheme letrec))
|
||||||
(define intm-let (scheme let))
|
(define intm-let (scheme let))
|
||||||
(define intm-let* (scheme let*))
|
(define intm-let* (scheme let*))
|
||||||
(define intm-time (scheme time))))
|
(define intm-time (scheme time))))
|
||||||
@(bd intm-define intm-define-struct intm-lambda intm-local intm-letrec intm-let intm-let* intm-time)
|
@(bd intm-define-struct intm-local intm-letrec intm-let intm-let* intm-time)
|
||||||
|
|
||||||
@(define-syntax-rule (bbd beg-define beg-define-struct beg-cond beg-if beg-and beg-or beg-check-expect beg-require)
|
@(define-syntax-rule (bbd beg-define beg-define-struct beg-cond beg-if beg-and beg-or beg-check-expect beg-require)
|
||||||
(begin
|
(begin
|
||||||
|
@ -36,7 +42,7 @@
|
||||||
@declare-exporting[lang/htdp-advanced]
|
@declare-exporting[lang/htdp-advanced]
|
||||||
|
|
||||||
@schemegrammar*+qq[
|
@schemegrammar*+qq[
|
||||||
#:literals (define define-struct lambda cond else if and or empty true false require lib planet
|
#:literals (define define-struct lambda λ cond else if and or empty true false require lib planet
|
||||||
local let let* letrec time begin begin0 set! delay shared recur when case unless
|
local let let* letrec time begin begin0 set! delay shared recur when case unless
|
||||||
check-expect check-within check-error)
|
check-expect check-within check-error)
|
||||||
(check-expect check-within check-error require)
|
(check-expect check-within check-error require)
|
||||||
|
@ -53,6 +59,7 @@
|
||||||
(set! id expr)
|
(set! id expr)
|
||||||
(delay expr)
|
(delay expr)
|
||||||
(lambda (id ...) expr)
|
(lambda (id ...) expr)
|
||||||
|
(λ (id ...) expr)
|
||||||
(local [definition ...] expr)
|
(local [definition ...] expr)
|
||||||
(letrec ([id expr] ...) expr)
|
(letrec ([id expr] ...) expr)
|
||||||
(shared ([id expr] ...) expr)
|
(shared ([id expr] ...) expr)
|
||||||
|
@ -126,7 +133,10 @@ additional set of operations:
|
||||||
|
|
||||||
@section[#:tag "advanced-lambda"]{@scheme[lambda]}
|
@section[#:tag "advanced-lambda"]{@scheme[lambda]}
|
||||||
|
|
||||||
@defform[(lambda (id ...) expr)]{
|
@deftogether[(
|
||||||
|
@defform[(lambda (id ...) expr)]
|
||||||
|
@defform[(λ (id ...) expr)]
|
||||||
|
)]{
|
||||||
|
|
||||||
The same as Intermediate with Lambda's @|intm-lambda|, except that a
|
The same as Intermediate with Lambda's @|intm-lambda|, except that a
|
||||||
function is allowed to accept zero arguments.}
|
function is allowed to accept zero arguments.}
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
@declare-exporting[lang/htdp-intermediate-lambda]
|
@declare-exporting[lang/htdp-intermediate-lambda]
|
||||||
|
|
||||||
@schemegrammar*+qq[
|
@schemegrammar*+qq[
|
||||||
#:literals (define define-struct lambda cond else if and or empty true false require lib planet
|
#:literals (define define-struct lambda λ cond else if and or empty true false require lib planet
|
||||||
local let let* letrec time check-expect check-within check-error)
|
local let let* letrec time check-expect check-within check-error)
|
||||||
(check-expect check-within check-error require)
|
(check-expect check-within check-error require)
|
||||||
[program (code:line def-or-expr ...)]
|
[program (code:line def-or-expr ...)]
|
||||||
|
@ -47,6 +47,7 @@
|
||||||
(define id expr)
|
(define id expr)
|
||||||
(define-struct id (id ...))]
|
(define-struct id (id ...))]
|
||||||
[expr (lambda (id id ...) expr)
|
[expr (lambda (id id ...) expr)
|
||||||
|
(λ (id id ...) expr)
|
||||||
(local [definition ...] expr)
|
(local [definition ...] expr)
|
||||||
(letrec ([id expr] ...) expr)
|
(letrec ([id expr] ...) expr)
|
||||||
(let ([id expr] ...) expr)
|
(let ([id expr] ...) expr)
|
||||||
|
@ -97,6 +98,10 @@ for @scheme[lambda], since a @scheme[lambda] form is an expression.}
|
||||||
Creates a function that takes as many arguments as given @scheme[id]s,
|
Creates a function that takes as many arguments as given @scheme[id]s,
|
||||||
and whose body is @scheme[expr].}
|
and whose body is @scheme[expr].}
|
||||||
|
|
||||||
|
@defform[(λ (id id ...) expr)]{
|
||||||
|
|
||||||
|
The Greek letter @scheme[λ] is a synonym for @scheme[lambda].}
|
||||||
|
|
||||||
@; ----------------------------------------------------------------------
|
@; ----------------------------------------------------------------------
|
||||||
|
|
||||||
@section[#:tag "intermediate-lambda-call"]{Function Calls}
|
@section[#:tag "intermediate-lambda-call"]{Function Calls}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user