On this page:
at-end
in-phase1
in-phase1/  pass2
5.3.6

7 Definitions

Carl Eastlund <cce@racket-lang.org>

This library is unstable; compatibility will not be maintained. See Unstable: May Change Without Warning for more information.

 (require unstable/define)

Provides macros for creating and manipulating definitions.

syntax

(at-end expr)

When used at the top level of a module, evaluates expr at the end of the module. This can be useful for calling functions before their definitions.

Examples:

> (module Failure scheme
    (f 5)
    (define (f x) x))
> (require 'Failure)

f: undefined;

 cannot reference an identifier before its definition

  in module: 'Failure

> (module Success scheme
    (require unstable/define)
    (at-end (f 5))
    (define (f x) x))
> (require 'Success)

syntax

(in-phase1 e)

Executes e during phase 1 (the syntax transformation phase) relative to its context, during pass 1 if it occurs in a head expansion position.

syntax

(in-phase1/pass2 e)

Executes e during phase 1 (the syntax transformation phase) relative to its context, during pass 2 (after head expansion).