21 lines
787 B
Racket
21 lines
787 B
Racket
#lang scribble/doc
|
|
@(require "common.rkt" (for-label syntax/free-vars))
|
|
|
|
@title[#:tag "free-vars"]{Computing the Free Variables of an Expression}
|
|
|
|
@defmodule[syntax/free-vars]
|
|
|
|
@defproc[(free-vars [expr-stx syntax?] [insp inspector? _mod-decl-insp])
|
|
(listof identifier?)]{
|
|
|
|
Returns a list of free @racket[lambda]- and @racket[let]-bound
|
|
identifiers in @racket[expr-stx] in the order in which each
|
|
identifier first appears within @racket[expr-stx]. The expression must be fully
|
|
expanded (see @secref[#:doc refman "fully-expanded"] and
|
|
@racket[expand]).
|
|
|
|
The inspector @racket[insp] is used to disarm @racket[expr-stx] and
|
|
sub-expressions before extracting idenrifiers. The default
|
|
@racket[insp] is the declaration-time inspector of the
|
|
@racketmodname[syntax/free-vars] module.}
|