On this page:
case
exclusive-cond

3 Profile-Guided Conditionals🔗ℹ

 (require pgmp/case) package: rackpgmp

syntax

(case val-expr case-clause ...)

Like Racket’s case, but may sort case-clauses in order of most frequently executed. An else clause, if one exists, will always be last.

 (require pgmp/exclusive-cond) package: rackpgmp

syntax

(exclusive-cond exclusive-cond-clause ...)

 
exclusive-cond-clause = [test-expr then-body ...+]
  | [else then-body ...+]
  | [test-expr => proc-expr]
Like Racket’s cond, but may sort exclusive-cond-clauses in order of most frequently executed. An else clause, if one exists, will always be last. Note that the clauses must be mutually exclusive or which branch is taken is non-deterministic.

When generated from another macro, be sure to preserve location information at the top level to ensure profile data can be loaded correctly.

Example:
> (define-syntax (dispatch syn)
    (define branches ...)
    (quasisyntax/loc syn
      #`(exclusive-cond
          #,@branches)))