racket/collects/deinprogramm/scribblings/DMdA-advanced.scrbl
Mike Sperber 698199d68c Massage syntax of `define-record-procedures-parametric'.
Now 

(define-record-procedures-parametric pare pare-of
  make-pare pare?
  (pare-one pare-two))

instead of the old

(define-record-procedures-parametric (pare a b)
  make-pare pare?
  (pare-one pare-two))

svn: r16035
2009-09-17 12:33:36 +00:00

58 lines
1.5 KiB
Racket

#lang scribble/doc
@(require scribblings/htdp-langs/common
"std-grammar.ss"
"prim-ops.ss"
(for-label deinprogramm/DMdA-assignments))
@title[#:style 'toc #:tag "DMdA-advanced"]{Die Macht der Abstraktion fortgeschritten}
This is documentation for the language level @italic{Die Macht der
Abstraktion - fortgeschritten} that goes with the German textbook
@italic{Die Macht der Abstraktion}.
@declare-exporting[deinprogramm/DMdA-advanced]
@schemegrammar*-DMdA[
#:literals (define-record-procedures-2 set!)
(
(define-record-procedures-2 id id id (field-spec ...))
(define-record-procedures-parametric-2 id id id id (field-spec ...))
)
(
[field-spec id (id id)]
[quoted id
number
string
character
(quoted ...)
@#,elem{@schemevalfont{'}@scheme[quoted]}]
)
(
(set! id expr)
(code:line @#,elem{@schemevalfont{'}@scheme[quoted]} (code:comment @#,seclink["advanced-quote"]{Quote-Literal}))
)
]
@|prim-nonterms|
@prim-ops['(lib "DMdA-advanced.ss" "deinprogramm") #'here]
@section[#:tag "advanced-quote"]{Quote-Literal}
@deftogether[(
@defform/none[(unsyntax @elem{@schemevalfont{'}@scheme[quoted]})]
@defform[(quote quoted)]
)]{
Der Wert eines Quote-Literals hat die gleiche externe Repräsentation wie @scheme[quoted].
}
@section[#:tag "advanced-contracts"]{Verträge}
@defidform[symbol]{
Vertrag für Symbole.
}
@section[#:tag "advanced-prim-op"]{Primitive Operationen}
@prim-op-defns['(lib "DMdA-advanced.ss" "deinprogramm") #'here '()]