{"size": 956, "ext": "scrbl", "max_stars_repo_path": "scribblings/little-scheme.scrbl", "max_stars_repo_name": "steinuil/little-scheme", "max_stars_repo_stars_event_min_datetime": "2020-12-05T01:14:50.000Z", "max_stars_repo_stars_event_max_datetime": "2021-05-26T01:33:29.000Z", "max_issues_repo_path": "scribblings/little-scheme.scrbl", "max_issues_repo_name": "steinuil/little-scheme", "max_issues_repo_issues_event_min_datetime": null, "max_issues_repo_issues_event_max_datetime": null, "max_forks_repo_path": "scribblings/little-scheme.scrbl", "max_forks_repo_name": "steinuil/little-scheme", "max_forks_repo_forks_event_min_datetime": "2020-04-05T03:11:27.000Z", "max_forks_repo_forks_event_max_datetime": "2020-04-05T03:11:27.000Z"}
{"max_stars_count": 2, "max_issues_count": null, "max_forks_count": 1, "avg_line_length": 35.4074074074, "max_line_length": 79, "alphanum_fraction": 0.6872384937}
#lang scribble/manual
@(require (for-label (except-in racket define)
                     little-scheme))

@title{Little Scheme}
@author{steenuil}

@defmodule[little-scheme]

Little Scheme defines the subset of Scheme used in The Little Schemer.

It provides the primitive procedures @racket[car], @racket[cdr], @racket[cons],
@racket[eq?], @racket[null?], @code[#:lang "little-scheme"]|{atom?}|,
@racket[number?], @racket[zero?], @racket[add1], @racket[sub1],
@code[#:lang "little-scheme"]|{define}|, @racket[quote], @racket[lambda],
@racket[cond], @racket[and] and @racket[or].

All other Racket/Scheme forms (@racket[let], @racket[if] etc.) are not defined.

@defform[(define id expr)]{
  Binds @racket[id] to the result of @racket[expr]. The second form that binds
  @racket[id] to a procedure is not allowed; use @racket[lambda] instead.
}

@defproc[(atom? [v any/c]) boolean?]{
  Returns @racket[#t] if @racket[v] is an atom, @racket[#f] otherwise.
}