<commit_before>List of r5rs sections and notes on implementation progress and any deviations from standard.

2.2
    `;` comments are implemented

3.5
    tail recursion is not implemented but is planned.

4.1.2
    literals are implemented for all implemented types:
        character
        string
        boolean
        number (exact positive integer)
        symbol (although there is not yet quoting)
        function (lambda form)
4.1.4
    `lambda` form is implemented

4.1.5
    both forms of `if` are implemented
    `(if cond if-expr)`
    `(if cond if-expr else-expr)`

4.1.6
    `set!` form is implemented.


4.2.1
    the following procedures are implemented:
        `and`
        `or`

4.2.2
    no derived binding construct are currently implemented.

4.3
    plot does not yet have a macro system.

5.2
    `define` form is implemented.

5.3
    plot does not yet have syntax definitions.

6.1
    `eq?` is not implemented.
    `eqv?` is not implemented.
    `equal?` is implemented.

6.2
    exact integers are implemented although
    there is not yet support for literal negative integers
    so you must use `(- 0 1)` in lieu of `-1`.

    currently in plot `integer` is synonymous with `number`
    `number?` is implemented, all other number-type-testing
    procedures are not currently implemented.

    complex, real and rational are not currently implemented.

    the following numerical comparison procedures are implemented:
        `=`
        `<`
        `>`
        `<=`
        `>=`

    the following numerical arithmetic procedures are impelmented:
        `+`
        `-`
        `*`
        `/`
        `remainder`

6.3.1
    booleans are implemented, literals `#t` and `#f`.
    plot has the boolean-type testing procedures `boolean?`
    `not` is implemented.

6.3.2
    pairs and lists are currently not implemented.

6.3.3
    symbols are implemented along with the testing procedures `symbol?`,
    note however that quoting is not yet implemented and thus symbols
    are currently always resolved via the env so `symbol?` can never return true.

6.3.4
    this section is completely implemented.

    plot deviates mildly from the standard as 'special' literals `#\space` and
    `#\newline` are case sensitive, whereas 6.3.4 defines them to be case insensitive;
    this means that plow will not behave correctly for `#\NEWLINE`.

    character literals are implemented
        `#\a` through to `#\Z`
        `#\0` through to `#\9`
        symbols such as `#\(`
        'special' literals `#\space` and `#\newline`
        space can also be written as `#\ `

    the following character procedures are implemented:
        `char?`
        `char=?`
        `char-ci=?`
        `char<?`
        `char>?`
        `char<=?`
        `char>=?`
        `char-ci<?`
        `char-ci>?`
        `char-ci<=?`
        `char-ci>=?`
        `char-alphabetic?`
        `char-numeric?`
        `char-whitespace?`
        `char-upper-case?`
        `char-lower-case?`
        `char->integer`
        `integer->char`
        `char-upcase`
        `char-downcase`

6.3.5
    string literals are implemented
        `"the word recursion has many meanings"`

    escaping is partially implemented but still requires work.

    the following string procedures are implemented:
        `string?`
        `string-length`
        `substring`
        `string-append`
        `string-copy`
        `string=?`
        `string-ci=?`

6.3.6
    vectors are not currently implemented.

6.4
    `procedure?` is implemented.
    all other procedures from this section are not implemented.

6.5
    eval is not currently exposed to plot programs.

6.6
    ports are not currently implemented.

6.6.3
    the following output procedures are implemented:
        `display`
        `newline`

<commit_msg>Busywork around r5rs implementatation document<commit_after>List of r5rs sections and notes on implementation progress and any deviations from standard.

2.2 comments
    `;` comments are implemented

3.5 Proper tail recursion
    tail recursion is not implemented but is planned.

4.1.2 Literal expressions
    literals are implemented for all implemented types:
        character
        string
        boolean
        number (exact positive integer)
        symbol (although there is not yet quoting)
        function (lambda form)
4.1.4 Procedures
    `lambda` form is implemented

4.1.5 Conditionals
    both forms of `if` are implemented
    `(if cond if-expr)`
    `(if cond if-expr else-expr)`

4.1.6 Assignments
    `set!` form is implemented.


4.2.1 Derived conditionals
    the following procedures are implemented:
        `and`
        `or`

4.2.2 Binding constructs
    no derived binding construct are currently implemented.

4.3 Macros
    plot does not yet have a macro system.

5.2 Definitions
    `define` form is implemented.

5.3 Syntax definitions
    plot does not yet have syntax definitions.

6.1 Equivalence predicates
    `eq?` is not implemented.
    `eqv?` is not implemented.
    `equal?` is implemented.

6.2 Numbers
    exact integers are implemented although
    there is not yet support for literal negative integers
    so you must use `(- 0 1)` in lieu of `-1`.

    currently in plot `integer` is synonymous with `number`
    `number?` is implemented, all other number-type-testing
    procedures are not currently implemented.

    complex, real and rational are not currently implemented.

    the following numerical comparison procedures are implemented:
        `=`
        `<`
        `>`
        `<=`
        `>=`

    the following numerical arithmetic procedures are impelmented:
        `+`
        `-`
        `*`
        `/`
        `remainder`

6.3.1 booleans
    booleans are implemented, literals `#t` and `#f`.
    plot has the boolean-type testing procedures `boolean?`
    `not` is implemented.

6.3.2 pairs and lists
    pairs and lists are currently not implemented.

6.3.3 symbols
    symbols are implemented along with the testing procedures `symbol?`,
    note however that quoting is not yet implemented and thus symbols
    are currently always resolved via the env so `symbol?` can never return true.

6.3.4 characters
    this section is completely implemented.

    plot deviates mildly from the standard as 'special' literals `#\space` and
    `#\newline` are case sensitive, whereas 6.3.4 defines them to be case insensitive;
    this means that plow will not behave correctly for `#\NEWLINE`.

    character literals are implemented
        `#\a` through to `#\Z`
        `#\0` through to `#\9`
        symbols such as `#\(`
        'special' literals `#\space` and `#\newline`
        space can also be written as `#\ `

    the following character procedures are implemented:
        `char?`
        `char=?`
        `char-ci=?`
        `char<?`
        `char>?`
        `char<=?`
        `char>=?`
        `char-ci<?`
        `char-ci>?`
        `char-ci<=?`
        `char-ci>=?`
        `char-alphabetic?`
        `char-numeric?`
        `char-whitespace?`
        `char-upper-case?`
        `char-lower-case?`
        `char->integer`
        `integer->char`
        `char-upcase`
        `char-downcase`

6.3.5 Strings
    string literals are implemented
        `"the word recursion has many meanings"`

    escaping is partially implemented but still requires work.

    the following string procedures are implemented:
        `string?`
        `string-length`
        `substring`
        `string-append`
        `string-copy`
        `string=?`
        `string-ci=?`

6.3.6 Vectors
    vectors are not currently implemented.

6.4 Control features
    `procedure?` is implemented.
    all other procedures from this section are not implemented.

6.5 Eval
    eval is not currently exposed to plot programs.

6.6 Input and output
    ports are not currently implemented.

6.6.3 Output
    the following output procedures are implemented:
        `display`
        `newline`


{'fraction_non_alphanumeric': 0.08987071670641396, 'fraction_numerical': 0.017195933224551273, 'mean_word_length': 2.3144758735440933, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 19, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5578262', 'n_tokens_mistral': 2336, 'n_tokens_neox': 2276, 'n_words': 877}