512 lines
28 KiB
HTML
512 lines
28 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">
|
|
<link rel="stylesheet" href="css/style.css">
|
|
<link rel="stylesheet" href="css/scribble.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>
|
|
|
|
<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>
|
|
<a class="five columns logo" href="">
|
|
<img class="logo" src="img/logo.png" />
|
|
</a>
|
|
<ul class="five 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="http://blog.racket-lang.org">Blog</a></li>
|
|
<li>
|
|
<button class="medium metro info 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 web_scraper 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>Web scraper</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">; Simple web scraper</span>
|
|
<span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/require.html#(form._((lib._racket/private/base..rkt)._require))" class="codelinkimportform" rel="nofollow">require</a> <a href="http://docs.racket-lang.org/net/url.html" class="codemodpath" rel="nofollow">net/url</a> <a href="http://docs.racket-lang.org/net/uri-codec.html" class="codemodpath" rel="nofollow">net/uri-codec</a><span class="codeparenthesis">)</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="codeparenthesis">(</span><span class="codeid">let-me-google-that-for-you</span> <span class="codeid">str</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="codeparenthesis">(</span><span class="codeparenthesis">[</span><span class="codeid">g</span> <span class="codestring">"http://www.google.com/search?q="</span><span class="codeparenthesis">]</span>
|
|
<span class="codeparenthesis">[</span><span class="codeid">u</span> <span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/strings.html#(def._((quote._~23~25kernel)._string-append))" class="codelinkimportid" rel="nofollow">string-append</a> <span class="codeid">g</span> <span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/net/uri-codec.html#(def._((lib._net/uri-codec..rkt)._uri-encode))" class="codelinkimportid" rel="nofollow">uri-encode</a> <span class="codeid">str</span><span class="codeparenthesis">)</span><span class="codeparenthesis">)</span><span class="codeparenthesis">]</span>
|
|
<span class="codeparenthesis">[</span><span class="codeid">rx</span> <span class="codestring">#rx"(?<=<h3 class=\"r\">).*?(?=</h3>)"</span><span class="codeparenthesis">]</span><span class="codeparenthesis">)</span>
|
|
<span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/regexp.html#(def._((lib._racket/private/base..rkt)._regexp-match*))" class="codelinkimportid" rel="nofollow">regexp-match*</a> <span class="codeid">rx</span> <span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/net/url.html#(def._((lib._net/url..rkt)._get-pure-port))" class="codelinkimportid" rel="nofollow">get-pure-port</a> <span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/net/url.html#(def._((lib._net/url..rkt)._string-~3eurl))" class="codelinkimportid" rel="nofollow">string->url</a> <span class="codeid">u</span><span class="codeparenthesis">)</span><span class="codeparenthesis">)</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>
|
|
Add a call to <code>let-me-google-that-for-you</code> to get a list of search
|
|
results.
|
|
</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> —
|
|
<span style="font-style: italic">a programmable programming
|
|
language</span>
|
|
</h2>
|
|
</div></div>
|
|
<div class="row" >
|
|
<div class="eight 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 and link together components written in different
|
|
dialects. Racket's libraries range from web servers to distributed
|
|
computing and from databases to charts.
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!-- <div class="row" > -->
|
|
<!-- <div class="one columns"></div> -->
|
|
<!-- <div class="eight columns"><h2 style="font-size: 180%; -->
|
|
<!-- margin-bottom: -->
|
|
<!-- 10pt"></>Start -->
|
|
<!-- Quickly</h2></div> -->
|
|
|
|
<!-- <div class="three columns"><h2 style="font-size: 180%; -->
|
|
<!-- margin-bottom: -->
|
|
<!-- 10pt"></>News -->
|
|
<!-- </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|.web_scraper"> -->
|
|
<!-- <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|.web_scraper"> -->
|
|
<!-- <img class="halign" src="img/next.png" -->
|
|
<!-- style="position: absolute; top: 50%; right: -20%; -->
|
|
<!-- margin-top: -->
|
|
<!-- -25px"> -->
|
|
<!-- </a> -->
|
|
|
|
|
|
<div id="topcontent">
|
|
|
|
<div class="row">
|
|
<div class="one columns">
|
|
</div>
|
|
|
|
|
|
<div class="seven columns" >
|
|
<h2 style="font-size: 180%;
|
|
margin-bottom:
|
|
10pt"></>Start
|
|
Quickly</h2>
|
|
<div style="position: relative; ">
|
|
<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>
|
|
|
|
<a href="#" class="toggle"
|
|
gumby-trigger=".unique_lines|.web_scraper" style="position: absolute; top: 40%; left: -15%">
|
|
<img src="img/prev.png" style="width: 50px">
|
|
</a>
|
|
|
|
<a href="#" class="toggle"
|
|
gumby-trigger=".unique_lines|.web_scraper" style="position: absolute; top: 40%; right: -15%">
|
|
<img src="img/next.png" style="width: 50px">
|
|
</a>
|
|
|
|
<pre class="codesnip active unique_lines" style="font-size: 140%;">
|
|
#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 web_scraper">
|
|
#lang <a href="http://docs.racket-lang.org/reference/index.html" class="codemodpath" rel="nofollow">racket</a> <span class="codecomment">; Simple web scraper</span>
|
|
<span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/require.html#(form._((lib._racket/private/base..rkt)._require))" class="codelinkimportform" rel="nofollow">require</a> <a href="http://docs.racket-lang.org/net/url.html" class="codemodpath" rel="nofollow">net/url</a> <a href="http://docs.racket-lang.org/net/uri-codec.html" class="codemodpath" rel="nofollow">net/uri-codec</a><span class="codeparenthesis">)</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="codeparenthesis">(</span><span class="codeid">let-me-google-that-for-you</span> <span class="codeid">str</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="codeparenthesis">(</span><span class="codeparenthesis">[</span><span class="codeid">g</span> <span class="codestring">"http://www.google.com/search?q="</span><span class="codeparenthesis">]</span>
|
|
<span class="codeparenthesis">[</span><span class="codeid">u</span> <span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/strings.html#(def._((quote._~23~25kernel)._string-append))" class="codelinkimportid" rel="nofollow">string-append</a> <span class="codeid">g</span> <span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/net/uri-codec.html#(def._((lib._net/uri-codec..rkt)._uri-encode))" class="codelinkimportid" rel="nofollow">uri-encode</a> <span class="codeid">str</span><span class="codeparenthesis">)</span><span class="codeparenthesis">)</span><span class="codeparenthesis">]</span>
|
|
<span class="codeparenthesis">[</span><span class="codeid">rx</span> <span class="codestring">#rx"(?<=<h3 class=\"r\">).*?(?=</h3>)"</span><span class="codeparenthesis">]</span><span class="codeparenthesis">)</span>
|
|
<span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/reference/regexp.html#(def._((lib._racket/private/base..rkt)._regexp-match*))" class="codelinkimportid" rel="nofollow">regexp-match*</a> <span class="codeid">rx</span> <span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/net/url.html#(def._((lib._net/url..rkt)._get-pure-port))" class="codelinkimportid" rel="nofollow">get-pure-port</a> <span class="codeparenthesis">(</span><a href="http://docs.racket-lang.org/net/url.html#(def._((lib._net/url..rkt)._string-~3eurl))" class="codelinkimportid" rel="nofollow">string->url</a> <span class="codeid">u</span><span class="codeparenthesis">)</span><span class="codeparenthesis">)</span><span class="codeparenthesis">)</span><span class="codeparenthesis">)</span><span class="codeparenthesis">)</span>
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="one columns"> </div>
|
|
|
|
|
|
<div class="three columns" style="text-color: black">
|
|
<h2 style="font-size: 180%; margin-bottom: 10pt">News </h2>
|
|
<p>Racket version 5.3.5 has been released.</p>
|
|
<p>Racket videos are now available.</p>
|
|
<p><a href="racketcon.html">RacketCon 2013</a> will be in September in Boston.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="row">
|
|
<p class="twelve columns centered" style="text-align:justify;font-size: 120%; margin-top: 20pt; ">
|
|
<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>
|
|
<p><a href="http://docs.racket-lang.org/quick/"><strong>Quick</strong>:
|
|
An Introduction to Racket with
|
|
Pictures</a>
|
|
gives you a taste of Racket.
|
|
</p>
|
|
|
|
<p><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.</p>
|
|
|
|
<p><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.
|
|
</p>
|
|
</div>
|
|
|
|
<div class="five columns push_two">
|
|
<div class="panetitle">For experienced Racketeers</div>
|
|
<p>
|
|
<a href="http://docs.racket-lang.org/reference/"><strong>Reference</strong>:
|
|
Racket</a> provides comprehensive coverage of all of Racket.
|
|
</p>
|
|
|
|
<p><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.
|
|
</p>
|
|
|
|
<p><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.</p>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="ten columns centered">
|
|
<h3>Learning</h3>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
|
|
<div class="row">
|
|
<div class="two columns image rounded" style="margin-top: 2pt">
|
|
<a href="http://www.htdp.org"><img src="img/htdp-cover.gif" /></a>
|
|
</div>
|
|
<div class="four columns">
|
|
<div class="panetitle">How to Design Programs</div>
|
|
<p>A principled approach to program design</p>
|
|
<ul>
|
|
<li>Teaching language support built-in to DrRacket</li>
|
|
<li>Aimed at the programming novice</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="four columns">
|
|
<div class="panetitle">Realm of Racket</div>
|
|
<p>Learn Racket and programming, one game at a time</p>
|
|
<ul>
|
|
<li>Sample game code comes with the Racket distribution</li>
|
|
<li>For those just starting out with Racket</li>
|
|
</ul>
|
|
</div>
|
|
<div class="two columns image rounded" style="margin-top: 2pt">
|
|
<a href="http://www.realmofracket.com"><img src="img/racket_cover_web.png" /></a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
|
|
<div class="row">
|
|
<div class="two columns image rounded" style="margin-top: 2pt">
|
|
<a href="http://cs.brown.edu/~sk/Publications/Books/ProgLangs/2007-04-26/">
|
|
<img src="img/plai-cover.jpg" />
|
|
</a>
|
|
</div>
|
|
<div class="four columns">
|
|
<div class="panetitle">PLAI</div>
|
|
<p>Foundations of programming languages</p>
|
|
<ul>
|
|
<li>Understand the features that make languages tick</li>
|
|
<li>For undergraduates, graduate students, and experts</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="four columns">
|
|
<div class="panetitle">Semantics Engineering with PLT Redex</div>
|
|
<p>Lightweight automation for semantics</p>
|
|
<ul>
|
|
<li>Model your own programming language semantics</li>
|
|
<li>For the working language engineer</li>
|
|
</ul>
|
|
</div>
|
|
<div class="two columns image rounded" style="margin-top: 2pt">
|
|
<a href="http://redex.racket-lang.org/">
|
|
<img src="img/redex-cover.jpg" />
|
|
</a>
|
|
</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 & Events</div>
|
|
|
|
<p><a href="racketcon.html">RacketCon</a> — the annual
|
|
Racket meeting, coming up in September. Previously
|
|
in <a href="http://con.racket-lang.org/2012">2012</a>
|
|
and <a href="http://con.racket-lang.org/2012">2011</a>.</p>
|
|
|
|
<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>
|
|
|
|
<p><a href="http://racket-lang.org/people.html">People</a> —
|
|
The people behind Racket.</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>
|