{"size": 1801, "ext": "scrbl", "max_stars_repo_path": "lambda-vc/scribblings/syntax.scrbl", "max_stars_repo_name": "asvarga/variadic-curry-calculus", "max_stars_repo_stars_event_min_datetime": "2020-11-29T11:46:03.000Z", "max_stars_repo_stars_event_max_datetime": "2021-07-28T21:28:20.000Z", "max_issues_repo_path": "lambda-vc/scribblings/syntax.scrbl", "max_issues_repo_name": "asvarga/variadic-curry-calculus", "max_issues_repo_issues_event_min_datetime": "2020-11-30T00:05:13.000Z", "max_issues_repo_issues_event_max_datetime": "2021-03-18T05:28:09.000Z", "max_forks_repo_path": "lambda-vc/scribblings/syntax.scrbl", "max_forks_repo_name": "asvarga/variadic-curry-calculus", "max_forks_repo_forks_event_min_datetime": "2020-11-29T23:35:18.000Z", "max_forks_repo_forks_event_max_datetime": "2020-11-29T23:35:18.000Z"}
{"max_stars_count": 9, "max_issues_count": 6, "max_forks_count": 1, "avg_line_length": 25.7285714286, "max_line_length": 81, "alphanum_fraction": 0.4136590783}
#lang scribble/manual
@; -*- mode: Scribble -*-

@;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

@title[#:tag "sec:syntax"]{Syntax}

This section defines the valid syntax that can be used in constructing terms in
λ@subscript{vc}.
A superscript @tt{@superscript{*}} indicates a repetition of the preceding item
zero or more times.
The superscript @tt{@superscript{+}} indicates a repetition of the preceding item
one or more times.
The lambda @tt{λ}, sigma @tt{σ}, ellipsis @tt{...}, and parentheses @tt{()} are
all literals.

@tabular[#:sep @hspace[1]
(list @; Terms Table Header
      (list @bold{t ::=} "" @bold{terms:} 'cont)
      @; Rows
      (list ""
            @tt{z}
            ""
            "integer")
      (list ""
            @tt{x}
            ""
            "variable")
      (list ""
            @tt{(λ (x@superscript{*}) t)}
            ""
            "n-ary function")
      (list ""
            @tt{(λ (x@superscript{+} ...) t)}
            ""
            "variadic function")
      (list ""
            @tt{(σ t t)}
            ""
            "superposition")
      (list ""
            @tt{(t@superscript{+})}
            ""
            "application")
      @; Spacing
      (list "" "" "" "")
      @; Values Table Header
      (list @bold{v ::=} "" @bold{values:} 'cont)
      @; Rows
      (list ""
            @tt{z}
            ""
            "integer value")
      (list ""
            @tt{(λ () t)}
            ""
            "nullary function value")
      (list ""
            @tt{(λ (x) t)}
            ""
            "unary function value")
      (list ""
            @tt{(λ (x ...) t)}
            ""
            "variadic function value")
      (list ""
            @tt{(σ v v)}
            ""
            "superposition value"))]
