{"size": 1109, "ext": "scrbl", "max_stars_repo_path": "defpat/docs/match-case-lambda.scrbl", "max_stars_repo_name": "AlexKnauth/defpat", "max_stars_repo_stars_event_min_datetime": null, "max_stars_repo_stars_event_max_datetime": null, "max_issues_repo_path": "defpat/docs/match-case-lambda.scrbl", "max_issues_repo_name": "AlexKnauth/defpat", "max_issues_repo_issues_event_min_datetime": null, "max_issues_repo_issues_event_max_datetime": null, "max_forks_repo_path": "defpat/docs/match-case-lambda.scrbl", "max_forks_repo_name": "AlexKnauth/defpat", "max_forks_repo_forks_event_min_datetime": null, "max_forks_repo_forks_event_max_datetime": null}
{"max_stars_count": null, "max_issues_count": null, "max_forks_count": null, "avg_line_length": 29.1842105263, "max_line_length": 70, "alphanum_fraction": 0.5067628494}
#lang scribble/manual

@(require (for-label racket/base
                     racket/match
                     defpat/match-case-lambda
                     generic-bind))

@title{match-case-lambda}

@defmodule[defpat/match-case-lambda]

@defform[(match*-case-lambda clause ...)
         #:grammar ([clause [args body ...+]
                            [args (=> id) body ...+]
                            [args #:when cond-expr body ...+]]
                    [args [arg-pat ...]
                          rest-id
                          [arg-pat ... . rest-id]])]{
like @racket[case-lambda], except that each @racket[arg-pat] can be an
arbitrary @racket[match] pattern.

As an example,
@racketblock[(match*-case-lambda
               [[(list x y) (vector z)]
                body])]
is equivalent to
@racketblock[(case-lambda
               [(tmp1 tmp2)
                (match* [tmp1 tmp2]
                  [[(list x y) (vector z)]
                   body])])]

Clauses with the same arity are grouped together into a single
@racket[case-lambda] clause with multiple @racket[match*] clauses
within it.
}

