Better sources (use unicode and `p*').
This commit is contained in:
parent
43c2d351df
commit
583abebb1a
|
@ -65,7 +65,7 @@
|
|||
[chunks (if (null? (car chunks)) (cdr chunks) chunks)]
|
||||
[body (for/list ([text (in-list chunks)]
|
||||
[tag (in-cycle (in-list tags))])
|
||||
(tag text))]
|
||||
(apply tag text))]
|
||||
[body (if nls? (add-newlines body) body)])
|
||||
(wrapper body)))
|
||||
(define p* (make-separated-tag values p))
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
@text{A low-volume, moderated list for announcements, only.})
|
||||
(ML "dev" "devel" #f
|
||||
@text{A mailing list for Racket development, for people who want to
|
||||
see how the sausages are made @mdash and help make them.})))
|
||||
see how the sausages are made — and help make them.})))
|
||||
|
||||
(define lists
|
||||
@page[#:title "Mailing Lists" #:file "" #:part-of 'community
|
||||
|
@ -99,7 +99,7 @@
|
|||
@br
|
||||
@span[style: "white-space: nowrap;"]{
|
||||
Search: @input[type: 'text name: 'q value: "" size: 20].}}
|
||||
@td{@small{@|mdash|none@mdash}})]
|
||||
@td{@small{—none—}})]
|
||||
[(mail-archive-cell)
|
||||
@form-cell["http://www.mail-archive.com/search"]{
|
||||
@input[type: 'hidden name: 'l value: email]
|
||||
|
|
|
@ -128,7 +128,8 @@
|
|||
|
||||
;; xhtml strict doesn't allow lists inside <p>, so fake our own paragraphs
|
||||
;; using divs:
|
||||
(define p* (make-separated-tag values (lambda (text) (div class: 'p text))))
|
||||
(define p*
|
||||
(make-separated-tag values (lambda text (apply div class: 'p text))))
|
||||
|
||||
@page[#:title "git intro" #:extra-headers style]{
|
||||
|
||||
|
|
|
@ -225,8 +225,8 @@
|
|||
builds (eg, after a minor version change).}
|
||||
@h3{A note about defensive scripting:}
|
||||
@p{Writing scripts that work for you is easy. Making them robust enough to
|
||||
be usable by others or by site-wide setups can be a delicate job @mdash
|
||||
you have to plan for bad @tt{PATH} setting (for example, a cron job is
|
||||
be usable by others or by site-wide setups can be a delicate job — you
|
||||
have to plan for bad @tt{PATH} setting (for example, a cron job is
|
||||
started in a pretty much bare environment), errors that happen in one
|
||||
command etc. The following is just like the above script, modified to
|
||||
be more robust in the following way:
|
||||
|
|
|
@ -11,8 +11,8 @@
|
|||
@mailing-lists-quick
|
||||
@irc-quick
|
||||
@parlist[@strong{PLT Scheme Inc.}
|
||||
@text{@blog @mdash announcements, helpful hints, and thoughtful rants.}
|
||||
@text{@people @mdash the people behind Racket.}]
|
||||
@text{@blog — announcements, helpful hints, and thoughtful rants.}
|
||||
@text{@people — the people behind Racket.}]
|
||||
@parlist[@strong{Development}
|
||||
@text{@git (also available on
|
||||
@a[href: "http://github.com/plt/racket/"]{GitHub})}
|
||||
|
|
|
@ -154,7 +154,7 @@
|
|||
(apply string-append (filter string? l)))
|
||||
(tog (list 5 "hello " 1/2 "world" (sqrt -1)))}
|
||||
@desc{Racket's type system is designed to let you add types after you've
|
||||
worked for a while in untyped mode @|ndash| even if your untyped program
|
||||
worked for a while in untyped mode — even if your untyped program
|
||||
wouldn't fit nicely in a conventional type system.})
|
||||
(scribble-example ; --------------------------------------
|
||||
@code|{#lang scribble/base
|
||||
|
|
|
@ -16,6 +16,6 @@
|
|||
(define (irc-quick)
|
||||
@parlist[@strong{Discussion Channel}
|
||||
@text{@irc-chat{Chat on IRC} in the @TT{@big{@strong{#racket}}} channel on
|
||||
@a[href: "http://freenode.net"]{@tt{freenode.net}} @mdash an informal
|
||||
@a[href: "http://freenode.net"]{@tt{freenode.net}} — an informal
|
||||
discussion channel for all things related to Racket.
|
||||
@irc-logs{Browse the logs}.}])
|
||||
|
|
|
@ -18,18 +18,16 @@
|
|||
@page{
|
||||
@parlist[@strong{Resources for Learning}
|
||||
(apply parlist @text{Documentation for getting started:} intros)
|
||||
@text{@-cookbook @mdash useful recipes, many of which apply to Racket.}
|
||||
@text{@-htdp @mdash a textbook for introductory programming, but also
|
||||
worthwhile for experience programmers who are new to @|ldquo|functional
|
||||
programming.@|rdquo|}
|
||||
@text{@-plai @mdash a textbook on programming languages.}
|
||||
@text{@-teachscheme @mdash a workshop to train teachers using @-htdp in
|
||||
the classroom.}]
|
||||
@text{@-cookbook — useful recipes, many of which apply to Racket.}
|
||||
@text{@-htdp — a textbook for introductory programming, but also
|
||||
worthwhile for experience programmers who are new to “functional
|
||||
programming.”}
|
||||
@text{@-plai — a textbook on programming languages.}]
|
||||
@parlist[
|
||||
@strong{Outreach}
|
||||
@text{@-teachscheme @mdash a workshop to train teachers using @-htdp in
|
||||
the classroom.}
|
||||
@text{@-bootstrap @mdash a curriculum for middle-school students.}]
|
||||
@text{@-teachscheme — a workshop to train teachers using @-htdp in the
|
||||
classroom.}
|
||||
@text{@-bootstrap — a curriculum for middle-school students.}]
|
||||
@parlist[@strong{Publications}
|
||||
techreports brown-pubs nwu-pubs neu-pubs utah-pubs]
|
||||
@parlist[@strong{Graduate Study}
|
||||
|
@ -44,44 +42,45 @@
|
|||
@h1{Graduate Study with PLT}
|
||||
@p{An open letter to graduate applicants:}
|
||||
@div[style: (box-style 3 "#ddd")]{
|
||||
@p{Dear Prospective Graduate Student,
|
||||
@br{}@br{}
|
||||
Thank you for your interest in working with PLT. We get several
|
||||
inquiries every year from students interested in working with one or
|
||||
more of us. We're flattered and, of course, interested in your
|
||||
applications. Because you are more interested in PLT than in our
|
||||
specific institutions, we have created the following common
|
||||
application form. By filling it in once, you can automatically apply
|
||||
to all current PLT institutions.}
|
||||
@p[style: (box-style 1 "#bbb")]{
|
||||
Yes, we know you don't like Boston/Chicago/Providence/Provo/Salt Lake
|
||||
City/San Luis Obispo/Worcester (circle those applicable). But we like
|
||||
them, or we wouldn't be living there. Think about the message you're
|
||||
sending by rejecting our choices. Moreover, we think very highly of
|
||||
our colleagues@|mdash|more highly than we think of your judgment in
|
||||
this matter@|mdash|so for your own good, we're going to forward your
|
||||
application to them anyway.}
|
||||
@p{How many years have you programmed in Scheme?}
|
||||
@p{How many years have you programmed in PLT Scheme?}
|
||||
@p{If the two numbers above are not identical, justify.}
|
||||
@p{How many PLT Scheme Web applications have you written?}
|
||||
@p{What problems did you find with the PLT Scheme Web server in the
|
||||
process? Please list bug report numbers.}
|
||||
@p{Which wheels did you inadvertently reinvent?}
|
||||
@p{Do you prefer your calculi Classic or Featherweight?}
|
||||
@p{Should types be intervals or ideals?}
|
||||
@p{In your opinion, which Barendregt proof has the highest hours spent
|
||||
understanding-to-symbols ratio?}
|
||||
@p{Which is your favorite combinator?}
|
||||
@p{Thank you for your interest. Don't be a cat squandering the popcorn.}
|
||||
@p[align: 'right]{@|mdash|Shriram, Outreach Coordinator, PLT}}
|
||||
@p{Seriously, we @em{do} enjoy working with graduate students. If you
|
||||
are inspired by the PLT project and want to drive the next generation of
|
||||
@p*{
|
||||
Dear Prospective Graduate Student,
|
||||
@|br br|
|
||||
Thank you for your interest in working with PLT. We get several
|
||||
inquiries every year from students interested in working with one or more
|
||||
of us. We're flattered and, of course, interested in your applications.
|
||||
Because you are more interested in PLT than in our specific institutions,
|
||||
we have created the following common application form. By filling it in
|
||||
once, you can automatically apply to all current PLT institutions.
|
||||
@~ @|style: (box-style 1 "#bbb")|@;
|
||||
Yes, we know you don't like Boston/Chicago/Providence/Provo/Salt Lake
|
||||
City/San Luis Obispo/Worcester (circle those applicable). But we like
|
||||
them, or we wouldn't be living there. Think about the message you're
|
||||
sending by rejecting our choices. Moreover, we think very highly of our
|
||||
colleagues—more highly than we think of your judgment in this matter—so
|
||||
for your own good, we're going to forward your application to them
|
||||
anyway.
|
||||
@~ How many years have you programmed in Scheme?
|
||||
@~ How many years have you programmed in PLT Scheme?
|
||||
@~ If the two numbers above are not identical, justify.
|
||||
@~ How many PLT Scheme Web applications have you written?
|
||||
@~ What problems did you find with the PLT Scheme Web server in the
|
||||
process? Please list bug report numbers.
|
||||
@~ Which wheels did you inadvertently reinvent?
|
||||
@~ Do you prefer your calculi Classic or Featherweight?
|
||||
@~ Should types be intervals or ideals?
|
||||
@~ In your opinion, which Barendregt proof has the highest hours spent
|
||||
understanding-to-symbols ratio?
|
||||
@~ Which is your favorite combinator?
|
||||
@~ Thank you for your interest. Don't be a cat squandering the popcorn.
|
||||
@~ @|align: 'right|
|
||||
—Shriram, Outreach Coordinator, PLT}}
|
||||
@p{Seriously, we @em{do} enjoy working with graduate students. If you are
|
||||
inspired by the PLT project and want to drive the next generation of
|
||||
innovation, you should strongly consider graduate study with us. We
|
||||
look forward to hearing from you. All of us, no matter where we may
|
||||
live.}
|
||||
@p[align: 'right]{
|
||||
@|mdash|@;
|
||||
—@;
|
||||
@a[href: "http://www.ccs.neu.edu/home/matthias/"]{Matthias},
|
||||
@a[href: "http://www.eecs.northwestern.edu/~robby/"]{Robby},
|
||||
@a[href: "http://www.cs.wpi.edu/~kfisler/"]{Kathi},
|
||||
|
|
|
@ -4,24 +4,6 @@
|
|||
|
||||
(define (url str) (tt (a href: str str)))
|
||||
|
||||
;;TODO: this should be done with some common function, together with
|
||||
;;translating "``" etc.
|
||||
(define (split-to-paras xs)
|
||||
(let loop ([cur #f] [paras '()] [xs xs])
|
||||
(cond
|
||||
[(null? xs) (map p (reverse (if cur (cons (reverse cur) paras) paras)))]
|
||||
[cur (if (and (equal? "\n" (car xs))
|
||||
(pair? (cdr xs)) (equal? "\n" (cadr xs)))
|
||||
(loop #f (cons (reverse cur) paras) (cdr xs))
|
||||
(loop (cons (car xs) cur) paras (cdr xs)))]
|
||||
[else (loop (if (equal? "\n" (car xs)) cur (list (car xs)))
|
||||
paras (cdr xs))])))
|
||||
|
||||
(define ((FAQ tag . ques) . answer)
|
||||
@div[class: 'faqentry]{
|
||||
@div[class: 'faqques]{@a[name: tag]{@ques}}
|
||||
@div[class: 'faqans]{@@(split-to-paras answer)}})
|
||||
|
||||
(define styles
|
||||
@style/inline{
|
||||
.nestedheading {
|
||||
|
@ -51,141 +33,137 @@
|
|||
margin-left: 1em;
|
||||
}})
|
||||
|
||||
(define ((FAQ tag . ques) . answer)
|
||||
@div[class: 'faqentry]{
|
||||
@div[class: 'faqques]{@a[name: tag]{@ques}}
|
||||
@div[class: 'faqans]{@answer}})
|
||||
|
||||
(define (heading . text)
|
||||
(apply div class: 'nestedheading text))
|
||||
(define (nested . text)
|
||||
(apply div class: 'nested text))
|
||||
|
||||
(define new-name
|
||||
@page[#:title "From PLT Scheme to Racket"]{
|
||||
@styles
|
||||
|
||||
@div[class: 'nestedheading]{PLT Scheme is a Racket}
|
||||
@heading{PLT Scheme is a Racket}
|
||||
|
||||
@div[class: 'nested]{Sure, it has parentheses, uses the keyword
|
||||
@tt{lambda}, provides lexical scope, and emphasizes macros @|ndash| but
|
||||
don't be fooled. PLT Scheme is no minimalist embodiment of 1930s math or
|
||||
1970s technology. PLT Scheme is a cover for a gang of academic hackers
|
||||
who want to fuse cutting-edge programming-language research with everyday
|
||||
programming. They draw you in with the promise of a simple and polite
|
||||
little Scheme, but soon you'll find yourself using modules, contracts,
|
||||
keyword arguments, classes, static types, and even curly braces.}
|
||||
@nested{Sure, it has parentheses, uses the keyword @tt{lambda}, provides
|
||||
lexical scope, and emphasizes macros — but don't be fooled. PLT Scheme
|
||||
is no minimalist embodiment of 1930s math or 1970s technology. PLT
|
||||
Scheme is a cover for a gang of academic hackers who want to fuse
|
||||
cutting-edge programming-language research with everyday programming.
|
||||
They draw you in with the promise of a simple and polite little Scheme,
|
||||
but soon you'll find yourself using modules, contracts, keyword
|
||||
arguments, classes, static types, and even curly braces.}
|
||||
|
||||
|
||||
@div[class: 'nestedheading]{Racket is a Scheme}
|
||||
@heading{Racket is a Scheme}
|
||||
|
||||
@div[class: 'nested]{Racket is still a dialect of Lisp and a descendant of
|
||||
Scheme. The tools developed by PLT will continue to support R5RS, R6RS,
|
||||
the old @tt{mzscheme} environment, Typed Scheme, and more. At the same
|
||||
time, instead of having to say @|ldquo|PLT's main variant of
|
||||
Scheme,@|rdquo| programmers can now simply say @|ldquo|Racket@|rdquo| to
|
||||
refer to the specific descendant of Scheme that powers PLT's languages
|
||||
and libraries.}
|
||||
@nested{Racket is still a dialect of Lisp and a descendant of Scheme. The
|
||||
tools developed by PLT will continue to support R5RS, R6RS, the old
|
||||
@tt{mzscheme} environment, Typed Scheme, and more. At the same time,
|
||||
instead of having to say “PLT's main variant of Scheme,” programmers can
|
||||
now simply say “Racket” to refer to the specific descendant of Scheme
|
||||
that powers PLT's languages and libraries.}
|
||||
|
||||
|
||||
@div[class: 'faqsection]{
|
||||
@div[class: 'nestedheading]{Anticipated Questions}
|
||||
@heading{Anticipated Questions}
|
||||
|
||||
|
||||
@@FAQ["why"]{
|
||||
Why change the name?
|
||||
}{
|
||||
|
||||
@@FAQ['why]{Why change the name?}{
|
||||
@p*{
|
||||
The @name{Scheme} part of the name @name{PLT Scheme} is misleading, and
|
||||
it is often an obstacle to explaining and promoting PLT research and
|
||||
tools.
|
||||
|
||||
For example, when you type @|ldquo|scheme@|rdquo| into Google, the
|
||||
first hit is a Wikipedia entry written from an R5RS perspective.
|
||||
That's appropriate for a Wikipedia page on Scheme, but it's not a good
|
||||
introduction to PLT Scheme. As long as we call our language
|
||||
@name{Scheme}, we struggle to explain our language, and we are usually
|
||||
forced to start the explanation with a disclaimer. At the same time,
|
||||
to the degree that the PLT community has defined @name{Scheme} though
|
||||
market share, publications, and educational outreach, we interfere with
|
||||
everyone else's ability to define @name{Scheme} @|ndash| and many have
|
||||
a valid claim to that ability.
|
||||
|
||||
By switching to @name{Racket}, we expect to resolve this
|
||||
communication problem.}
|
||||
@~
|
||||
For example, when you type “scheme” into Google, the first hit is a
|
||||
Wikipedia entry written from an R5RS perspective. That's appropriate
|
||||
for a Wikipedia page on Scheme, but it's not a good introduction to PLT
|
||||
Scheme. As long as we call our language @name{Scheme}, we struggle to
|
||||
explain our language, and we are usually forced to start the
|
||||
explanation with a disclaimer. At the same time, to the degree that
|
||||
the PLT community has defined @name{Scheme} though market share,
|
||||
publications, and educational outreach, we interfere with everyone
|
||||
else's ability to define @name{Scheme} — and many have a valid claim to
|
||||
that ability.
|
||||
@~
|
||||
By switching to @name{Racket}, we expect to resolve this communication
|
||||
problem.}}
|
||||
|
||||
|
||||
@@FAQ["what"]{What will the change look like?
|
||||
}{
|
||||
|
||||
@@FAQ['what]{What will the change look like?}{
|
||||
@p*{
|
||||
@name{DrScheme} becomes @name{DrRacket}. The @tt{mzscheme} executable
|
||||
becomes @tt{racket}, and @tt{mred} becomes @tt{gracket} (following a
|
||||
common convention for @|ldquo|GUI @tt{racket}@|rdquo|). We change each
|
||||
@tt{#lang scheme} to @tt{#lang racket} in the Racket distribution,
|
||||
although @tt{#lang scheme} will be supported for backward
|
||||
compatibility. The @url{http://plt-scheme.org} site will be replaced by
|
||||
common convention for “GUI @tt{racket}”). We change each @tt{#lang
|
||||
scheme} to @tt{#lang racket} in the Racket distribution, although
|
||||
@tt{#lang scheme} will be supported for backward compatibility. The
|
||||
@url{http://plt-scheme.org} site will be replaced by
|
||||
@url{http://racket-lang.org}. The @tt{plt-scheme} mailing list becomes
|
||||
the @tt{racket} mailing list (@tt{users@"@"racket-lang.org}).
|
||||
|
||||
the @tt{racket} mailing list (@tt|{users@racket-lang.org}|).
|
||||
@~
|
||||
The Racket site and documentation will note that Racket is a descendant
|
||||
of Scheme, but most current uses of the word @|ldquo|Scheme@|rdquo|
|
||||
(which implicitly mean PLT Scheme) will be replaced by
|
||||
@|ldquo|Racket.@|rdquo|
|
||||
|
||||
Racket programmers are @name{Racketeers}, of course.}
|
||||
of Scheme, but most current uses of the word “Scheme” (which implicitly
|
||||
mean PLT Scheme) will be replaced by “Racket.”
|
||||
@~
|
||||
Racket programmers are @name{Racketeers}, of course.}}
|
||||
|
||||
|
||||
@@FAQ["scheme"]{
|
||||
Does this mean that PLT will no longer implement Scheme?
|
||||
}{
|
||||
|
||||
@@FAQ['scheme]{Does this mean that PLT will no longer implement Scheme?}{
|
||||
@p*{
|
||||
There will be little difference between the current @tt{#lang scheme}
|
||||
and the new @tt{#lang racket}, but the latter will become the
|
||||
preferred form.
|
||||
|
||||
In addition, PLT will continue to support standards such as R5RS
|
||||
and R6RS. The transition from/to various Scheme languages to/from
|
||||
Racket will be as easy/difficult as before.}
|
||||
and the new @tt{#lang racket}, but the latter will become the preferred
|
||||
form.
|
||||
@~
|
||||
In addition, PLT will continue to support standards such as R5RS and
|
||||
R6RS. The transition from/to various Scheme languages to/from Racket
|
||||
will be as easy/difficult as before.}}
|
||||
|
||||
|
||||
@@FAQ["transition"]{What happens to all of the old programs, scripts,
|
||||
address books, bookmarks, papers, etc. that refer to @name{PLT
|
||||
Scheme} instead of @name{Racket}?}{
|
||||
@@FAQ['transition]{What happens to all of the old programs, scripts,
|
||||
address books, bookmarks, papers, etc. that refer to @name{PLT Scheme}
|
||||
instead of @name{Racket}?}{
|
||||
@p*{
|
||||
Old executables, web sites, mailing addresses, and module names will
|
||||
forward to the new ones. We will work to make the transition as
|
||||
painless as possible and to preserve old references for as long as
|
||||
possible.}
|
||||
|
||||
@@FAQ["edu"]{
|
||||
How can I tell my department that we should teach with Racket
|
||||
instead of Scheme? They've never heard of @name{Racket}.
|
||||
}{
|
||||
possible.}}
|
||||
|
||||
@@FAQ['edu]{How can I tell my department that we should teach with Racket
|
||||
instead of Scheme? They've never heard of @name{Racket}.}{
|
||||
@p*{
|
||||
If you felt comfortable claiming that PLT Scheme was Scheme before,
|
||||
then you can still say that you want to teach with Scheme, even if the
|
||||
environment is called @name{DrRacket}. Racket is a descendant of
|
||||
Scheme, just like PLT Scheme was.}
|
||||
Scheme, just like PLT Scheme was.}}
|
||||
|
||||
|
||||
@@FAQ["brand"]{
|
||||
Aren't you worried that you will lose brand recognition by switching
|
||||
from the name @name{Scheme} to @name{Racket}?
|
||||
}{
|
||||
|
||||
@@FAQ['brand]{Aren't you worried that you will lose brand recognition by
|
||||
switching from the name @name{Scheme} to @name{Racket}?}{
|
||||
@p*{
|
||||
Yes. Nevertheless, we think the long-term benefit of a new name will
|
||||
outweigh the short-term difficulties of changing.}
|
||||
outweigh the short-term difficulties of changing.}}
|
||||
|
||||
|
||||
@@FAQ["plt"]{
|
||||
Instead of picking a new name, why not just call the language
|
||||
@name{PLT}?
|
||||
}{
|
||||
|
||||
@@FAQ['plt]{Instead of picking a new name, why not just call the language
|
||||
@name{PLT}?}{
|
||||
@p*{
|
||||
Some of us tried that, informally. It felt awkward, because we use
|
||||
@name{PLT} to refer to a group of people, and because we have used
|
||||
@name{PLT} as a modifier for @name{Scheme} and other nouns. Switching
|
||||
the language name from one noun to another sounds better, it's clearer,
|
||||
and it's easier to explain.}
|
||||
and it's easier to explain.}}
|
||||
|
||||
|
||||
@@FAQ["suggestions"]{
|
||||
Couldn't you find a better name?
|
||||
@name{[Insert name here]} would be better.
|
||||
}{
|
||||
|
||||
@@FAQ['suggestions]{Couldn't you find a better name?
|
||||
@name{[Insert name here]} would be better.}{
|
||||
@p*{
|
||||
Thank you for the suggestion. The name @name{Racket} meets some basic
|
||||
criteria: it isn't used already, it's easy to pronounce and spell, and
|
||||
it has a vague connection to the word @|ldquo|scheme.@|rdquo| Mostly,
|
||||
though, we just like it.}
|
||||
it has a vague connection to the word “scheme.” Mostly, though, we
|
||||
just like it.}}
|
||||
|
||||
}})
|
||||
|
|
|
@ -38,18 +38,17 @@
|
|||
(provide people)
|
||||
(define people
|
||||
@page[#:part-of 'community]{
|
||||
@p{@|ldquo|PLT@|rdquo| refers to the group that is the core of the Racket
|
||||
development team. PLT consists of numerous people distributed across
|
||||
several different universities in the USA: @places}
|
||||
@p{“PLT” refers to the group that is the core of the Racket development
|
||||
team. PLT consists of numerous people distributed across several
|
||||
different universities in the USA: @places}
|
||||
@h4{Affiliates}
|
||||
@p{We work with
|
||||
@ul{@li{The crew at @a[href: "http://untyped.com"]{Untyped}}
|
||||
@li{Dorai Sitaram, GTE Labs}
|
||||
@li{Mike Sperber, Universität Tübingen}}
|
||||
@ul*{@~ The crew at @a[href: "http://untyped.com"]{Untyped}
|
||||
@~ Dorai Sitaram, GTE Labs
|
||||
@~ Mike Sperber, Universität Tübingen}
|
||||
In particular, please check out the Racket-related work being done at
|
||||
@|-schematics|.}
|
||||
@h4{And ...}
|
||||
@p{Finally, Racket is supported by an band of volunteers who contribute not
|
||||
only code and documentation but also infectious enthusiasm@|mdash|too
|
||||
many to name but whose help and encouragement make this fun and
|
||||
worthwhile.}})
|
||||
only code and documentation but also infectious enthusiasm—too many to
|
||||
name but whose help and encouragement make this fun and worthwhile.}})
|
||||
|
|
Loading…
Reference in New Issue
Block a user