racket/new-racket-web/index.html
Sam Tobin-Hochstadt 4b7224f917 more
2014-03-01 19:55:49 -07:00

473 lines
26 KiB
HTML

<!doctype html>
<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->
<!--[if IE 7]> <html class="no-js ie7 oldie" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="no-js ie8 oldie" lang="en"> <![endif]-->
<!--[if IE 9]> <html class="no-js ie9" lang="en"> <![endif]-->
<!-- Consider adding an manifest.appcache: h5bp.com/d/Offline -->
<!--[if gt IE 9]><!--> <html class="no-js" lang="en" itemscope itemtype="http://schema.org/Product"> <!--<![endif]-->
<head>
<meta charset="utf-8">
<!-- Use the .htaccess and remove these lines to avoid edge case issues.
More info: h5bp.com/b/378 -->
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>The Racket Language</title>
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
<!-- Mobile viewport optimized: j.mp/bplateviewport -->
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<!-- Place favicon.ico and apple-touch-icon.png in the root directory: mathiasbynens.be/notes/touch-icons -->
<!-- CSS: implied media=all -->
<!-- CSS concatenated and minified via ant build script-->
<!-- <link rel="stylesheet" href="css/minified.css"> -->
<!-- CSS imports non-minified for staging, minify before moving to production-->
<link rel="stylesheet" href="css/gumby.css">
<!-- end CSS-->
<!-- More ideas for your <head> here: h5bp.com/d/head-Tips -->
<!-- All JavaScript at the bottom, except for Modernizr / Respond.
Modernizr enables HTML5 elements & feature detects; Respond is a polyfill for min/max-width CSS3 Media Queries
For optimal performance, use a custom Modernizr build: www.modernizr.com/download/ -->
<script src="js/libs/modernizr-2.6.2.min.js"></script>
</head>
<style>
body { background: url(img/loud.png) center 40% no-repeat
fixed; }
.btn,.drawer {margin-bottom:10px;}
.drawer { text-align: center; }
h1.lead { border-bottom: 1px dotted #ccc; margin-bottom: 30px; }
h4.lead {margin-bottom:10px;}
#icon_map ul li { font-size: 16px; }
.smallify { font-size: 13px; }
#icon_map ul {m argin-bottom: 25px; }
.modal h2, .modal .btn { margin: 10px 0 0px; }
.parallax { height: 300px; width: 100%; background:
url(img/img_parallax_demo.jpg); }
.navbar { background: black }
pre { color: black }
p {color: black}
.codecomment {
color: #c2741f;
}
.codeparenthesis {
color: #843c24;
}
.codeconstant, .codestring {
color: #228b22;
}
.codeid, .codemodpath {
color: #262680;
}
.codeimportid {
color: blue;
}
.codeimportform {
font-weight: bold;
}
.codelinkimportid {
color: blue;
text-decoration: none;
}
.codelinkimportform {
font-weight: bold;
color: black;
text-decoration: none;
}
.codelinkimportid:hover {
text-decoration: none;
}
.codelinkimportform:hover {
text-decoration: none;
}
.codemodpath:hover {
text-decoration: none;
}
.codesnip { display: none }
.codesnip.active { display: block}
#growboxes { margin-top: 10pt; }
.panetitle { color: red; font-size: 120%; margin-bottom: 4pt }
</style>
<body>
<div class="navbar" gumby-fixed="top" id="nav1">
<div class="row">
<a class="toggle" gumby-trigger="#nav1 > .row > ul" href="#"><i class="icon-menu"></i></a>
<h1 class="three columns logo">
<a href="">
<img src="img/logo.png" />
</a>
</h1>
<ul class="push_two nine columns">
<li><a href="https://pkg.racket-lang.org">Packages</a></li>
<li><a href="http://docs.racket-lang.org">Documentation</a></li>
<li><a href="#">Community</a></li>
<li><a href="#">Learning</a></li>
<li><a href="#">Blog</a></li>
<li>
<button class="medium metro default btn icon-left entypo icon-install">
<a href="#">Download</a>
</button>
</li>
</ul>
</div>
</div>
<div class="modal" id="modal1">
<div class="content unique_lines codesnip active">
<a class="close switch" gumby-trigger="|#modal1"><i class="icon-cancel" ></i></a>
<div class="row">
<div class="ten columns centered center-text">
<h4>Unique Lines</h4>
<pre style="font-size: 140%; font-family: 'Inconsolata';">
#lang <a href="http://docs.racket-lang.org/reference/index.html" class="codemodpath" rel="nofollow">racket</a>
<span class="codecomment">;; Report each unique line from stdin</span>
<span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/let.html#(form._((lib._racket/private/letstx-scheme..rkt)._let))" class="codelinkimportform" rel="nofollow">let</a> <span class="codeparenthesis">(</span><span class="codeparenthesis">[</span><span class="codeid">saw</span> <span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/hashtables.html#(def._((quote._~23~25kernel)._make-hash))" class="codelinkimportid" rel="nofollow">make-hash</a><span class="codeparenthesis">)</span><span class="codeparenthesis">]</span><span class="codeparenthesis">)</span>
<span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/for.html#(form._((lib._racket/private/base..rkt)._for))" class="codelinkimportform" rel="nofollow">for</a> <span class="codeparenthesis">(</span><span class="codeparenthesis">[</span><span class="codeid">line</span> <span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/sequences.html#(def._((lib._racket/private/base..rkt)._in-lines))" class="codelinkimportid" rel="nofollow">in-lines</a><span class="codeparenthesis">)</span><span class="codeparenthesis">]</span><span class="codeparenthesis">)</span>
<span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/when_unless.html#(form._((lib._racket/private/letstx-scheme..rkt)._unless))" class="codelinkimportform" rel="nofollow">unless</a> <span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/hashtables.html#(def._((quote._~23~25kernel)._hash-ref))" class="codelinkimportid" rel="nofollow">hash-ref</a> <span class="codeid">saw</span> <span class="codeid">line</span> <span class="codeconstant">#f</span><span class="codeparenthesis">)</span>
<span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/Writing.html#(def._((lib._racket/private/misc..rkt)._displayln))" class="codelinkimportid" rel="nofollow">displayln</a> <span class="codeid">line</span><span class="codeparenthesis">)</span><span class="codeparenthesis">)</span>
<span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/hashtables.html#(def._((quote._~23~25kernel)._hash-set!))"
class="codelinkimportid"
rel="nofollow">hash-set!</a> <span class="codeid">saw</span> <span class="codeid">line</span> <span class="codeconstant">#t</span><span class="codeparenthesis">)</span><span class="codeparenthesis">)</span><span class="codeparenthesis">)</span>
</pre>
</div>
</div>
<div class="row">
<div class="ten columns centered center-text">
<p>
Uses a hash table to record previously seen lines. You can run this program in DrRacket, but it makes more sense from the command line.
</p>
<p>
To run the example, install Racket, start DrRacket, paste the example
program into the top area in DrRacket, and click the Run
button. Alternatively, save the program to a file and run <code>racket</code> on
the file.
</p>
<p style="font-size: 80%">
Form and function names in the code are hyperlinked to
documentation, so click on them for more information.
</p>
</div>
</div>
</div>
<div class="content echo_server codesnip">
<a class="close switch" gumby-trigger="|#modal1"><i class="icon-cancel" /></i></a>
<div class="row">
<div class="ten columns centered center-text">
<h4>Echo server</h4>
<pre style="font-size: 140%; font-family: 'Inconsolata';">
#lang <a href="http://docs.racket-lang.org/reference/index.html" class="codemodpath" rel="nofollow">racket</a> <span class="codecomment">; An echo server</span>
<span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/define.html#(form._((lib._racket/private/base..rkt)._define))" class="codelinkimportform" rel="nofollow">define</a> <span class="codeid">listener</span> <span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/tcp.html#(def._((lib._racket/tcp..rkt)._tcp-listen))" class="codelinkimportid" rel="nofollow">tcp-listen</a> <span class="codeconstant">12345</span><span class="codeparenthesis">)</span><span class="codeparenthesis">)</span>
<span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/let.html#(form._((lib._racket/private/letstx-scheme..rkt)._let))" class="codelinkimportform" rel="nofollow">let</a> <span class="codeid">echo-server</span> <span class="codeparenthesis">(</span><span class="codeparenthesis">)</span>
<span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/define.html#(form._((quote._~23~25kernel)._define-values))" class="codelinkimportform" rel="nofollow">define-values</a> <span class="codeparenthesis">(</span><span class="codeid">in</span> <span class="codeid">out</span><span class="codeparenthesis">)</span> <span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/tcp.html#(def._((lib._racket/tcp..rkt)._tcp-accept))" class="codelinkimportid" rel="nofollow">tcp-accept</a> <span class="codeid">listener</span><span class="codeparenthesis">)</span><span class="codeparenthesis">)</span>
<span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/threads.html#(def._((quote._~23~25kernel)._thread))" class="codelinkimportid" rel="nofollow">thread</a> <span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/lambda.html#(form._((lib._racket/private/base..rkt)._lambda))" class="codelinkimportform" rel="nofollow">lambda</a> <span class="codeparenthesis">(</span><span class="codeparenthesis">)</span> <span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/port-lib.html#(def._((lib._racket/port..rkt)._copy-port))" class="codelinkimportid" rel="nofollow">copy-port</a> <span class="codeid">in</span> <span class="codeid">out</span><span class="codeparenthesis">)</span>
<span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/port-ops.html#(def._((quote._~23~25kernel)._close-output-port))" class="codelinkimportid" rel="nofollow">close-output-port</a> <span class="codeid">out</span><span class="codeparenthesis">)</span><span class="codeparenthesis">)</span><span class="codeparenthesis">)</span>
<span class="codeparenthesis">(</span><span class="codeid">echo-server</span><span class="codeparenthesis">)</span><span class="codeparenthesis">)</span>
</pre>
</div>
</div>
<div class="row">
<div class="ten columns centered center-text">
<p>
Racket makes it easy to use TCP sockets and spawn threads to handle
them. This program starts a server at TCP port 12345 that echos
anything a client sends back to the client.</p>
<p>
To run the example, install Racket, start DrRacket, paste the example
program into the top area in DrRacket, and click the Run
button. Alternatively, save the program to a file and run <code>racket</code> on
the file.
</p>
<p class="footnote" style="font-size: 80%">
Form and function names in the code are hyperlinked to
documentation, so click on them for more information.
</p>
</div>
</div>
</div>
</div>
<div class="row" >
<div class="ten columns centered">
<h2 style="font-size: 180%; margin-bottom:
10pt"><strong>Racket</strong>: A programmable programming
language</h2>
</div></div>
<div class="row" >
<div class="nine columns centered" style="margin-bottom: 10pt; font-size: 120%; text-align:justify;">
Racket is a wide-spectrum programming language that inherits from Lisp
and Scheme but also provides dialects that support
objects, types, laziness and many other
paradigms. Racket's module system allows programmers to
write components in different dialects and link them
together. Racket's libraries extend from web servers to
databases to distributed computing to charting.
</div>
</div>
<div class="row" >
<div class="ten columns centered"><h2 style="font-size: 180%;
margin-bottom:
10pt"></>Start
Quickly</h2></div>
</div>
<!-- The other version of the buttons: -->
<!-- <div class="eight columns centered" -->
<!-- style="font-size: 140%; position: relative; -->
<!-- font-family: 'Inconsolata';"> -->
<!-- <a href="#" class="toggle" gumby-trigger=".unique_lines|.echo_server"> -->
<!-- <img class="halign" src="img/prev.png" style="position: -->
<!-- absolute; top: 50%; left: -20%; margin-top: -25px"> -->
<!-- </a> -->
<!-- <a href="#" class="toggle" gumby-trigger=".unique_lines|.echo_server"> -->
<!-- <img class="halign" src="img/next.png" -->
<!-- style="position: absolute; top: 50%; right: -20%; -->
<!-- margin-top: -->
<!-- -25px"> -->
<!-- </a> -->
<div id="topcontent">
<div class="row">
<section class="twelve columns centered">
<article class="valign row">
<div class="one columns push_one">
<a href="#" class="toggle"
gumby-trigger=".unique_lines|.echo_server">
<img src="img/prev.png" style="margin-top: 50px; width: 50px">
</a>
</div>
<div class="eight columns" style="position:relative; font-size: 140%; font-family: 'Inconsolata';">
<p class="metro primary btn"
style="position: absolute; top: -10%; right: 0%;" >
<a href="#" class="switch" gumby-trigger="#modal1"> <i class="icon-help"></i></a>
</p>
<pre class="codesnip active unique_lines">
#lang <a href="http://docs.racket-lang.org/reference/index.html" class="codemodpath" rel="nofollow">racket</a>
<span class="codecomment">;; Report each unique line from stdin</span>
<span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/let.html#(form._((lib._racket/private/letstx-scheme..rkt)._let))" class="codelinkimportform" rel="nofollow">let</a> <span class="codeparenthesis">(</span><span class="codeparenthesis">[</span><span class="codeid">saw</span> <span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/hashtables.html#(def._((quote._~23~25kernel)._make-hash))" class="codelinkimportid" rel="nofollow">make-hash</a><span class="codeparenthesis">)</span><span class="codeparenthesis">]</span><span class="codeparenthesis">)</span>
<span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/for.html#(form._((lib._racket/private/base..rkt)._for))" class="codelinkimportform" rel="nofollow">for</a> <span class="codeparenthesis">(</span><span class="codeparenthesis">[</span><span class="codeid">line</span> <span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/sequences.html#(def._((lib._racket/private/base..rkt)._in-lines))" class="codelinkimportid" rel="nofollow">in-lines</a><span class="codeparenthesis">)</span><span class="codeparenthesis">]</span><span class="codeparenthesis">)</span>
<span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/when_unless.html#(form._((lib._racket/private/letstx-scheme..rkt)._unless))" class="codelinkimportform" rel="nofollow">unless</a> <span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/hashtables.html#(def._((quote._~23~25kernel)._hash-ref))" class="codelinkimportid" rel="nofollow">hash-ref</a> <span class="codeid">saw</span> <span class="codeid">line</span> <span class="codeconstant">#f</span><span class="codeparenthesis">)</span>
<span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/Writing.html#(def._((lib._racket/private/misc..rkt)._displayln))" class="codelinkimportid" rel="nofollow">displayln</a> <span class="codeid">line</span><span class="codeparenthesis">)</span><span class="codeparenthesis">)</span>
<span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/hashtables.html#(def._((quote._~23~25kernel)._hash-set!))"
class="codelinkimportid"
rel="nofollow">hash-set!</a> <span class="codeid">saw</span> <span class="codeid">line</span> <span class="codeconstant">#t</span><span class="codeparenthesis">)</span><span class="codeparenthesis">)</span><span class="codeparenthesis">)</span>
</pre>
<pre class="codesnip echo_server">
#lang <a href="http://docs.racket-lang.org/reference/index.html" class="codemodpath" rel="nofollow">racket</a> <span class="codecomment">; An echo server</span>
<span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/define.html#(form._((lib._racket/private/base..rkt)._define))" class="codelinkimportform" rel="nofollow">define</a> <span class="codeid">listener</span> <span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/tcp.html#(def._((lib._racket/tcp..rkt)._tcp-listen))" class="codelinkimportid" rel="nofollow">tcp-listen</a> <span class="codeconstant">12345</span><span class="codeparenthesis">)</span><span class="codeparenthesis">)</span>
<span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/let.html#(form._((lib._racket/private/letstx-scheme..rkt)._let))" class="codelinkimportform" rel="nofollow">let</a> <span class="codeid">echo-server</span> <span class="codeparenthesis">(</span><span class="codeparenthesis">)</span>
<span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/define.html#(form._((quote._~23~25kernel)._define-values))" class="codelinkimportform" rel="nofollow">define-values</a> <span class="codeparenthesis">(</span><span class="codeid">in</span> <span class="codeid">out</span><span class="codeparenthesis">)</span> <span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/tcp.html#(def._((lib._racket/tcp..rkt)._tcp-accept))" class="codelinkimportid" rel="nofollow">tcp-accept</a> <span class="codeid">listener</span><span class="codeparenthesis">)</span><span class="codeparenthesis">)</span>
<span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/threads.html#(def._((quote._~23~25kernel)._thread))" class="codelinkimportid" rel="nofollow">thread</a> <span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/lambda.html#(form._((lib._racket/private/base..rkt)._lambda))" class="codelinkimportform" rel="nofollow">lambda</a> <span class="codeparenthesis">(</span><span class="codeparenthesis">)</span> <span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/port-lib.html#(def._((lib._racket/port..rkt)._copy-port))" class="codelinkimportid" rel="nofollow">copy-port</a> <span class="codeid">in</span> <span class="codeid">out</span><span class="codeparenthesis">)</span>
<span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/port-ops.html#(def._((quote._~23~25kernel)._close-output-port))" class="codelinkimportid" rel="nofollow">close-output-port</a> <span class="codeid">out</span><span class="codeparenthesis">)</span><span class="codeparenthesis">)</span><span class="codeparenthesis">)</span>
<span class="codeparenthesis">(</span><span class="codeid">echo-server</span><span class="codeparenthesis">)</span><span class="codeparenthesis">)</span>
</pre>
</div>
<div class="one columns">
<a href="#" class="toggle" gumby-trigger=".unique_lines|.echo_server">
<img src="img/next.png" style="width: 50px; margin-top: 50px;">
</a>
</div>
</article>
</section>
</div>
<div class="row">
<p class="ten columns centered" style="font-size: 120%; margin-top: 10pt; ">
<a href="http://docs.racket-lang.org/quick/">Draw more pictures</a> or
<a href="http://docs.racket-lang.org/more/">build a web server from scratch</a>. Racket includes both
<a href="http://docs.racket-lang.org/">batteries</a> and a <a href="http://docs.racket-lang.org/drracket/">programming environment</a>,
so <a href="http://docs.racket-lang.org/getting-started/">get started</a>!
</p>
</div>
</div>
<!-- below code snippets -->
<div class="row">
<div class="ten columns centered">
<h3 >Go Further</h3>
</div>
</div>
<div class="row" id="growboxes">
<div class="four columns">
<div class="panetitle">Grow your Program</div><p>Racket's
<a href="http://docs.racket-lang.org/guide/intro.html#(part._.Interacting_with_.Racket)">interactive mode</a>
encourages experimentation, and quick scripts easily compose into
larger systems. Small scripts and large systems both benefit from
<a href="http://docs.racket-lang.org/guide/performance.html">native-code JIT compilation</a>.
When a system gets too big to keep in your head, you can add
<a href="http://docs.racket-lang.org/ts-guide/index.html">static types</a>.</p>
</div>
<div class="four columns">
<div class="panetitle">Grow your Language</div><p><a href="http://docs.racket-lang.org/guide/languages.html">Extend Racket</a> whenever you need to.
Mold it to better suit your tasks without sacrificing
<a href="http://docs.racket-lang.org/guide/dialects.html">interoperability</a> with existing
libraries and without having to modify the
<a href="http://docs.racket-lang.org/guide/intro.html">tool chain</a>. When less is more, you can
remove parts of a language or start over and build a new one.</p>
</div>
<div class="four columns">
<div class="panetitle">Grow your Skills</div><p>Whether you're just <a href="http://htdp.org/">starting out</a>, want to know more about
programming language <a href="http://www.plai.org/">applications</a> or <a href="http://redex.racket-lang.org/">models</a>,
looking to <a href="http://docs.racket-lang.org/continue/">expand your horizons</a>, or ready to dive into
<a href="learning.html">research</a>, Racket can help you become a better programmer
and system builder.</p>
</div>
</div>
</div>
<div class="row">
<div class="ten columns centered">
<h3 >Documentation</h3>
</div>
</div>
<div class=row>
<div class="five columns">
<div class="panetitle">For getting started</div>
<div class="parlistitem"><a href="http://docs.racket-lang.org/quick/"><strong>Quick</strong>:
An Introduction to Racket with
Pictures</a>
gives you a taste of Racket.
</div>
<div class="parlistitem"><a href="http://docs.racket-lang.org/more/"><strong>More</strong>:
Systems Programming with Racket</a>
dives
much deeper and much faster, showing how to build a complete
continuation-based web server.</div>
<div class="parlistitem"><a href="http://docs.racket-lang.org/guide/"><strong>Guide</strong>:
Racket</a> starts with a tutorial on Racket basics, and then it
describes the rest of the Racket language.</div>
</div>
<div class="five columns push_two">
<div class="panetitle">For experienced Racketeers</div>
<div class="parlistitem">
<a href="http://docs.racket-lang.org/reference/"><strong>Reference</strong>:
Racket</a> provides comprehensive coverage of all of Racket.
</div>
<div class="parlistitem"><a href="http://docs.racket-lang.org/continue/"><strong>Continue</strong>:
Web Applications in Racket</a>
describes how to use the
Racket <a href="http://docs.racket-lang.org/web-server/">web
server</a> to build dynamic web applications.
</div>
<div class="parlistitem"><a href="http://docs.racket-lang.org/pkg/"><strong>Package
Management</strong></a> explains how to install
<a href="https://pkg.racket-lang.org">packages</a>, and how to
build and distribute your own.</div>
</div>
</div>
</div>
<div class="row">
<div class="ten columns centered">
<h3>Community</h3>
</div>
</div>
<div class=row>
<div class="four columns">
<div class="panetitle">News</div>
<p><a href="http://blog.racket-lang.org/">Blog</a>
— announcements, helpful hints, and thoughtful rants.</p>
<p><a href="http://twitter.com/#!/racketlang">Twitter</a>
— short bits of Racket news.</p>
</div>
<div class="four columns">
<div class="panetitle">Discussion</div>
<p><a href="http://lists.racket-lang.org/">Mailing lists</a>
— discussion for using and developing Racket.</p>
<p><a href="http://racket-lang.org/irc-chat.html">IRC</a>
Chat in the <tt style="background-color: #d8d8e8;"><big><strong>#racket</strong></big></tt> channel on
<a href="http://freenode.net"><tt>freenode.net</tt></a> — an informal
discussion channel for all things related to Racket.
(<a href="https://botbot.me/freenode/racket/">Browse the logs</a>.)</p>
</div>
<div class="four columns">
<div class="panetitle">Contributing</div>
<p><a href="https://github.com/plt/racket/">Code</a>
— the Racket source code on GitHub.</p>
<p><a href="https://github.com/plt/racket/wiki">Wiki</a>
Useful pages
include <a href="https://github.com/plt/racket/wiki/Intro-Projects">Intro
Projects</a>
and <a href="https://github.com/plt/racket/wiki/Videos">Videos</a>,
including tutorials, interviews, and more.</p>
<p><a href="http://www.cs.utah.edu/plt/snapshots">Snapshot builds</a>
The freshest versions of Racket.</p>
<p><a href="http://bugs.racket-lang.org">Bug reports</a>
File, query and maybe fix existing reports.</p>
</div>
</div>
<!-- Grab Google CDN's jQuery, with a protocol relative URL; fall back to local if offline -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="/js/libs/jquery-1.9.1.min.js"><\/script>')</script>
<script src="js/libs/gumby.min.js"></script>
<script src="js/plugins.js"></script>
<script src="js/main.js"></script>
<!-- end scripts-->
</body>
</html>