{"size": 930, "ext": "scrbl", "max_stars_repo_path": "pkgs/racket-doc/scribblings/reference/block.scrbl", "max_stars_repo_name": "lkh01/racket", "max_stars_repo_stars_event_min_datetime": "2018-07-29T04:13:52.000Z", "max_stars_repo_stars_event_max_datetime": "2022-02-14T16:11:17.000Z", "max_issues_repo_path": "pkgs/racket-doc/scribblings/reference/block.scrbl", "max_issues_repo_name": "lkh01/racket", "max_issues_repo_issues_event_min_datetime": "2017-08-25T20:26:37.000Z", "max_issues_repo_issues_event_max_datetime": "2022-02-26T17:48:40.000Z", "max_forks_repo_path": "pkgs/racket-doc/scribblings/reference/block.scrbl", "max_forks_repo_name": "lkh01/racket", "max_forks_repo_forks_event_min_datetime": "2016-04-25T11:47:57.000Z", "max_forks_repo_forks_event_max_datetime": "2017-05-09T14:52:48.000Z"}
{"max_stars_count": 10, "max_issues_count": 15, "max_forks_count": 3, "avg_line_length": 25.1351351351, "max_line_length": 70, "alphanum_fraction": 0.6924731183}
#lang scribble/doc
@(require "mz.rkt" (for-label racket/block))

@(define ev (make-base-eval))
@(ev '(require racket/block))

@title[#:tag "block"]{Blocks: @racket[block]}

@note-lib-only[racket/block]

@defform[(block defn-or-expr ...)]{

Supports a mixture of expressions and mutually recursive definitions,
as in a @racket[module] body. Unlike an @tech{internal-definition
context}, the last @racket[defn-or-expr] need not be an expression.

The result of the @racket[block] form is the result
of the last @racket[defn-or-expr] if it is an expression,
@|void-const| otherwise. If no @racket[defn-or-expr] is provided
(after flattening @racket[begin] forms), the result is @|void-const|.

The final @racket[defn-or-expr] is executed in tail position, if it is
an expression.  


@examples[#:eval ev
(define (f x)
  (block
    (define y (add1 x))
    (displayln y)
    (define z (* 2 y))
    (+ 3 z)))
(f 12)
]}

@close-eval[ev]
