{"size": 1318, "ext": "scrbl", "max_stars_repo_path": "pkgs/racket-doc/syntax/scribblings/flatten-begin.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/syntax/scribblings/flatten-begin.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/syntax/scribblings/flatten-begin.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": 31.380952381, "max_line_length": 69, "alphanum_fraction": 0.7139605463}
#lang scribble/doc
@(require "common.rkt"
          scribble/eval
          (for-label syntax/flatten-begin))

@(define flatten-eval (make-base-eval))
@(flatten-eval '(require syntax/flatten-begin))

@title[#:tag "flatten-begin"]{Flattening @racket[begin] Forms}

@defmodule[syntax/flatten-begin]

@defproc[(flatten-begin [stx syntax?]) (listof syntax?)]{

Extracts the sub-expressions from a @racket[begin]-like form,
reporting an error if @racket[stx] does not have the right shape
(i.e., a syntax list). The resulting syntax objects have annotations
transferred from @racket[stx] using @racket[syntax-track-origin].

@examples[#:eval flatten-eval
  (flatten-begin #'(begin 1 2 3))
  (flatten-begin #'(begin (begin 1 2) 3))
  (flatten-begin #'(+ (- 1 2) 3))
]}

@defproc[(flatten-all-begins [stx syntax?]) (listof syntax?)]{

Extracts the sub-expressions from a @racket[begin] form and
recursively flattens @racket[begin] forms nested in the original one.
An error will be reported if @racket[stx] is not a @racket[begin]
form. The resulting syntax objects have annotations
transferred from @racket[stx] using @racket[syntax-track-origin].

@examples[#:eval flatten-eval
  (flatten-all-begins #'(begin 1 2 3))
  (flatten-all-begins #'(begin (begin 1 2) 3))
]

@history[#:added "6.1.0.3"]}

@close-eval[flatten-eval]
