diff --git a/beautiful-racket-lib/br/info.rkt b/beautiful-racket-lib/br/info.rkt new file mode 100644 index 0000000..613804a --- /dev/null +++ b/beautiful-racket-lib/br/info.rkt @@ -0,0 +1,2 @@ +#lang info +(define scribblings '(("scribblings/br.scrbl" ()))) diff --git a/beautiful-racket-lib/br/scribblings/br.scrbl b/beautiful-racket-lib/br/scribblings/br.scrbl new file mode 100644 index 0000000..ff62cca --- /dev/null +++ b/beautiful-racket-lib/br/scribblings/br.scrbl @@ -0,0 +1,65 @@ +#lang scribble/manual +@(require (for-label br/conditional)) + +@title[#:style 'toc]{Beautiful Racket} + +@author[(author+email "Matthew Butterick" "mb@mbtype.com")] + + +Beautiful Racket @link["http://beautifulracket.com"]{is a book} about making programming languages with Racket. + +This library provides the @tt{#lang br} teaching language used in the book, as well as supporting modules that can be used in other programs. + + +@;defmodulelang[br] + +@tt{#lang br} is a teaching language designed to smooth over some of the small idiosyncrasies and inconsistencies in Racket, so that those new to Racket will say ``ah, that makes sense'' rather than ``huh? what?'' @tt{#lang br} is not meant to hide the true nature of Racket, but rather defer certain parts of the learning curve. + +To that end, this documentation not only explains the functions and forms in the Beautiful Racket library, but also how they depart from traditional or idiomatic Racket. (BTW ``Beautiful Racket'' is the name of the book, not an implication that the rest of Racket is less than beautiful. It is! But one thing at a time.) + +@section{Conditionals} + +@defmodule[br/conditional] + +@defform[(while cond body ...)] +Loop over @racket[_body] expressions as long as @racket[_cond] is not @racket[#f]. If @racket[_cond] starts out @racket[#f], @racket[_body] expressions are not evaluated. + +@defform[(until cond body ...)] +Loop over @racket[_body] expressions until @racket[_cond] is not @racket[#f]. If @racket[_cond] starts out @racket[#f], @racket[_body] expressions are not evaluated. + + +@section{Datums} + +@defmodule[br/datum] + +@defproc[ +(format-datum +[datum-template symbol?] +[arg any/c?] ...) +datum?] +tk + + +@section{Debugging} + +@defmodule[br/debug] + +TK + +@section{Define} + +@defmodule[br/define] + +TK + +@section{Reader utilities} + +@defmodule[br/reader-utils] + +TK + +@section{Syntax} + +@defmodule[br/syntax] + +TK \ No newline at end of file diff --git a/beautiful-racket-lib/info.rkt b/beautiful-racket-lib/info.rkt index b466345..b175a1a 100644 --- a/beautiful-racket-lib/info.rkt +++ b/beautiful-racket-lib/info.rkt @@ -3,4 +3,5 @@ (define version "0.01") (define deps '("base" "sugar")) -(define build-deps '("racket-doc" "rackunit-lib")) \ No newline at end of file +(define build-deps '("racket-doc" "rackunit-lib" "scribble-lib")) +(define scribblings '(("br/scribblings/br.scrbl" ())))