{"size": 1203, "ext": "scrbl", "max_stars_repo_path": "elle-doc/scribblings/core-forms/definition.scrbl", "max_stars_repo_name": "tail-reversion/elle", "max_stars_repo_stars_event_min_datetime": "2021-01-07T04:34:50.000Z", "max_stars_repo_stars_event_max_datetime": "2021-03-08T01:07:58.000Z", "max_issues_repo_path": "elle-doc/scribblings/core-forms/definition.scrbl", "max_issues_repo_name": "tail-reversion/elle", "max_issues_repo_issues_event_min_datetime": null, "max_issues_repo_issues_event_max_datetime": null, "max_forks_repo_path": "elle-doc/scribblings/core-forms/definition.scrbl", "max_forks_repo_name": "tail-reversion/elle", "max_forks_repo_forks_event_min_datetime": null, "max_forks_repo_forks_event_max_datetime": null}
{"max_stars_count": 7, "max_issues_count": null, "max_forks_count": null, "avg_line_length": 36.4545454545, "max_line_length": 203, "alphanum_fraction": 0.6093100582}
#lang scribble/manual

@(require "../util.rkt")


@title{Definitions}

Unlike most (if not all) Lisps, Elle does not have a parenthesized, prefix form for value definitions. Instead, Elle has an unparenthesized, infix form, similar to some languages outside the Lisp family.

@defform*/subs[#:link-target? #f #:id definition #:literals (= ⇒)
               [(code:line id = expr)
                (code:line proc-header ⇒ expr)]
               ([proc-header (name args)
                 (proc-header args)]
                [args (code:line mandatory-args maybe-optional-args maybe-rest)]
                [mandatory-args (code:line id ... #:<kw> id ... ...)]
                [maybe-optional-args (code:line)
                 [id ... #:<kw> id ... ...]]
                [maybe-rest (code:line)
                 (code:line id #,ellipsis)])]{
 The first form binds @racket[id] to the result of @racket[expr].

 The second form binds @racket[name] to a procedure formed by unfolding the @racket[proc-header] into a “curried @racket[λ]”.
}

@defidform[=]{
 Used as an infix token to separate binding patterns from expressions in a definition form.
}

@defidform[⇒]{
 Used as an infix token in certain forms.
}
