procedure
fmtv...[ #:sourcesrc#:propsprops#:certignored#:subs?subs?fmt:string?
The format string must use only ~a placeholders. Syntax objects in the argument list are automatically unwrapped (e.g., identifiers will be automatically converted to symbols).
[(make-predname)> (make-predpair)#<procedure:pair?>
> (make-prednone-such)none-such?: undefined;
cannot reference an identifier before its definition
in module: top-level
[(better-make-predname)> (better-make-prednone-such)none-such?: undefined;
cannot reference an identifier before its definition
in module: top-level
(Scribble doesn’t show it, but the DrRacket pinpoints the location of the second error but not of the first.)
If subs? is #t, then a 'sub-range-binders syntax property is added to the result that records the position of each identifier in the vs. The subs-intro procedure is applied to each identifier, and its result is included in the sub-range binder record. This property value overrides a 'sub-range-binders property copied from props.
'sub-range-binders)'(#(#<syntax point/2-y> 8 1 0.5 0.5 #<syntax:eval:8:0 y> 0 1 0.5 0.5)
#(#<syntax point/2-y> 0 5 0.5 0.5 #<syntax:eval:8:0 point> 0 5 0.5 0.5))
Changed in version 7.4.0.5 of package base: Added the #:subs? and
#:subs-intro arguments.
Changed in version 8.7.0.7: Allowed v to be a syntax object
wrapping a string, a keyword, a character, or a number.
procedure
( format-symbol fmtv...)→symbol?
fmt:string?
'make-triple
Changed in version 8.7.0.7 of package base: Allowed v to be a syntax object wrapping a string, a keyword, a character, or a number.
syntax
( define/with-syntax patternstx-expr)
stx-expr : syntax?
#<syntax:eval:12:0 ((a9 a) (b10 b) (c11 c))>
> #'(helloname)#<syntax:eval:14:0 (hello Alice)>
parameter
( current-syntax-context )→(or/c syntax? #f)
procedure
( wrong-syntax stxformat-stringv...)→any
stx:syntax?format-string:string?v:any/c
eval:15:0: ?: expected there
at: here
eval:16:0: look: expected there
at: here
in: (look over here)
__)))
parameter
syntax
( with-disappeared-uses body-expr...stx-expr)
stx-expr : syntax?
Changed in version 6.5.0.7 of package base: Added the option to include body-exprs.
procedure
( syntax-local-value/record idpredicate)→any/c
id:identifier?
procedure
( record-disappeared-uses id[intro?])→void?
If not used within the extent of a with-disappeared-uses form or similar, has no effect.
Changed in version 6.5.0.7 of package base: Added the option to pass a single identifier instead of
requiring a list.
Changed in version 7.2.0.11: Added the intro? argument.
procedure
( generate-temporary [name-base])→identifier?
procedure
intdef-ctx:internal-definition-context?stx:syntax?
procedure
( syntax-local-eval stx[intdef-ctx])→any
stx:any/c= '()
[(show-meexpr)expr))]))at compile time produces 7
at run time produces 7
> (show-mefruit)at compile time produces apple
at run time produces pear
Changed in version 6.90.0.27 of package base: Changed intdef-ctx to accept a list of internal-definition contexts in addition to a single internal-definition context or #f.
syntax
body...+)stx-expr : syntax?
#<syntax:eval:22:0 ((val1) (val2))>