2449:. This language has a number of useful features, such as uniform representation for higher-order functions (avoiding the pitfalls when callbacks and callouts are different), struct definitions that are similar to plain Racket structs, and custom function types that can represent input and output pointers, implicit arguments (e.g., an argument that provides the number of elements in a vector that is passed as another argument). By using this interface to access underlying GUI toolkits, Racket implements its own GUI layer, in Racket.
2596:@; Generate a PDF or an HTML document using `scribble' @(require (planet neil/numspell)) @title{99 Bottles of Beer} In case you need some @emph{blah blah} in your life. @(apply itemlist (for/list () (define N (number->english n)) (define N-- (number->english (sub1 n))) @item{@string-titlecase bottles of beer on the wall, @N bottles of beer. Take one down, pass it around, @N-- bottles of beer on the wall.}))
5285:
5275:
5255:
5245:
5265:
78:
The moving memory manager (aka "3m") is a precise garbage collector, and it has been Racket's default collector since 2007. This collector is a generational one, and it supports memory accounting via custodians (see below). The collector is implemented as a C source transformer that is itself written
71:
was used. However, conservative collection is impractical for long-running processes such as a web server—such processes tend to slowly leak memory. Also, there are pathological cases where a conservative collector leaks memory fast enough to make certain programs impossible to run. For example, when
3583:
Another supported language is plai which like racket can be typed or untyped. "Modules written in plai export every definition (unlike scheme)." "The Typed PLAI language differs from traditional Racket most importantly by being statically typed. It also gives some useful new constructs: define-type,
635:
Racket features the concept of a "custodian": a kind of value that acts as a resource manager. This is often used in network servers, where each connection is dealt with in a new custodian, making it easy to "clean-up" all resources that might have been left open by the handler (e.g., open ports).
2577:
Scribble, Racket's documentation system, comes in the form of a number of languages that are used to write prose. It is used for Racket's documentation, as well as writing books and articles. Actually, rather than a single "scribble" language, it is a family of (very similar) dialects, each for a
3094:
The PLT group which develops Racket has traditionally been involved in education at all levels. One of the earliest research ideas that the group promoted is the use of language levels, which restrict new students while providing them with helpful error messages that fit the student's level of
2629:
that it implements is unique in that the motivation in developing it was accommodating as much idiomatic Racket code as possible—as a result, it includes subtypes, unions, and much more. Another goal of Typed Racket is to allow migration of parts of a program into the typed language, so it
2445:, and send out callbacks to Racket functions (using libffi closures). The core implementation is a thin layer atop libffi (written in C), and the full interface is then implemented via Racket code. The interface uses macros extensively, resulting in an expressive Racket-based
1412:
DrRacket editors can contain images, and DrRacket displays image values just like any other type of value (such as integers or lists). Running the above program, for example, actually displays a
Sierpinski triangle, which can be cut and pasted into another program.
2600:
The most striking feature of the
Scribble languages is their use of a new syntax, which is designed specifically for textually rich code. The syntax allows free-form text, string interpolation, customizable quotations, and is useful in other applications such as
2910:
port. Unlike the
Scribble syntax, the first two of these languages use an all-new syntax rather than an extension of S-expressions. If used it in DrRacket, it provides proper highlighting, the usual host of tools check syntax, and a Prolog/Datalog REPL.
4035:
4014:
is a macro that is used in all function calls, making this language not too efficient, as every function call incurs an added condition. Also, the macro evaluates the function expression twice, so it should not be taken as an example of good
832:
Custodians, combined with the memory accounting feature of the 3m garbage collector, and several added runtime parameters that control more aspects of the runtime, make it possible to create fully safe sandboxed execution contexts. The
72:
traversing an infinite list, a single conservative mistake of retaining a pointer leads to keeping the complete list in memory, quickly overflowing available memory. This collector is often referred to as "CGC" in the Racket community.
1464:
99:. This complements the precise garbage collector and in some cases, like in the implementation of Lazy Racket, the two features are crucial for proper execution. This is in addition to further compiler optimizations such as
2634:
to enforce type invariants. This is considered a desirable feature of an application's lifetime stages, as it matures from "a script" to "an application", where static typing helps in maintenance of a large body of code.
844:
on the specified port; connecting to this port will look like a plain Racket REPL, except that the evaluation is subject to the various protection aspects of the sandbox. For example, it is not possible to access the
2565:
Such languages are used extensively in the Racket distribution and in user libraries. In fact, creating a new language is so straightforward, that there are some languages that have less than a handful of uses.
26:
since the mid-1990s, and has accumulated many features over the years. This article describes and demonstrates some of these features. Note that one of Racket's main design goals is to accommodate creating new
2562:
The module system plays an important role in combining these features, and making it possible to write code that spans across a number of modules, where each can be written in a different language.
4936:
42:
The core Racket implementation is highly flexible. Even without using dialects, it can function as a full-featured scripting language, capable of running both with and without windows-native
4039:
3997:
Krishnamurthi, Shriram. "Programming
Languages: Application and Interpretation." Programming Languages: Application and Interpretation. Brown University, n.d. Web. 14 Mar. 2016. <
4089:
4845:
2605:, generating text, and HTML template systems. Note that the syntax extends plain S-expressions, and is implemented as an alternative input for such expressions.
1423:
1049:
Racket also includes the functions needed to write scrapers and robots. As an example, the following function lists the Google results for a search string.
35:
and completely new languages. Therefore, some of the following examples are in different languages, but they are all implemented in Racket. Please refer to
849:
from this REPL, create network connection, run subprocesses, or use too much time or memory. (In fact, this REPL is safe enough to be given out publicly.)
4942:
4339:
627:, and a (perl-compatible) regular expression. It scans the base directory for files with the given suffix, and print lines matching the regexp pattern.
471:
line, making it possible to turn such programs to executable scripts. The following script demonstrates this, in addition to using Racket's library for
5289:
5249:
4572:
2555:
a rich runtime system, providing features that language implementors can use, like (composable, delimited) continuations, resource management, etc.,
4082:
2581:
To run the following example, copy it into DrRacket and click one of the two scribble rendering buttons that will appear (PDF rendering requires
4930:
4116:
60:
3767:
except for two special "hook macros" that implement unbound variable lookup and function calls, instead of these, new forms are provided to
5279:
5269:
4981:
2542:
4219:
3907:
5057:
5037:
4947:
4791:
4121:
4075:
4608:
5259:
5052:
5016:
4355:
4376:
4360:
4205:
2446:
1420:
library constructs image values for more mature audiences and needs. For example, the following program plots the sum of two
4152:
839:
5309:
5125:
4717:
4409:
4330:
2452:
The FFI can be used in a number of different ways: from writing a complete glue layer for a library (as done for Racket's
472:
275:
128:
88:
36:
23:
17:
270:
The combination of dynamic compilation and a rich system interface makes Racket a capable scripting language, similar to
4899:
4563:
4386:
4157:
5314:
5163:
4711:
4478:
4424:
4401:
4365:
4185:
4098:
2156:
For example, the following program displays in full-screen a title slide, followed by a slide with some pictures. The
2612:
Hi, I'm a text file -- run me. @(define (thrice . text) @list{@text, @text, @text}) @thrice{SPAM}! @thrice{HAM}!
4673:
4653:
4638:
4623:
4543:
2430:
75:
SenoraGC is an alternative conservative garbage collector that is intended mainly for debugging and memory tracing.
5094:
4726:
4598:
4320:
4194:
2538:
80:
5254:
5011:
4824:
4434:
4167:
4141:
2438:
104:
43:
32:
5186:
281:
The following example demonstrates walking a directory tree, starting at the current directory. It uses the
68:
4829:
4668:
4314:
4279:
4252:
3096:
2804:
is an infinite list which 1000th element will not be computed until its value is needed for the printout.
1280:
1279:
library provides convenient functions for constructing images. This library is mainly used by students in
96:
5138:
4840:
4796:
4774:
4296:
4131:
2569:
Racket comes with a number of useful languages, some are very different from Racket's default language.
2164:
functions combine pictures vertically and horizontally, respectively, and centered on the other axis.
2153:, but with Racket's programming facilities. Elements of the slides are pictures that can be combined.
2130:
The GUI can be hand-coded in this way or with the help of a GUI designer program available on PLaneT.
1275:
Graphic capabilities come in several different flavors that are intended for different audiences. The
5042:
4996:
4764:
28:
4247:
4175:
1288:
124:
5148:
5133:
5085:
4991:
4274:
4228:
2631:
2138:
624:
3969:
Tobin-Hochstadt, S.; Felleisen, M. (2006). "Interlanguage
Migration: From Scripts to Programs".
2456:
binding), to quickly pulling out a single foreign function. An example of the latter approach:
623:
The script is a grep-like utility, expecting three command-line arguments: a base directory, a
371:
The next example uses a hash table to record previously seen lines and print only unique ones.
5224:
5143:
5110:
4744:
4628:
3773:
allow hash tables to be used as functions, where the arguments are used for hash-table lookup.
2895:
837:
library provides this kind of functionality in a simple way. The following example creates a
5090:
5062:
4976:
4894:
4703:
3954:
Tobin-Hochstadt, S.; Felleisen, M. (2008). "The Design and
Implementation of Typed Scheme".
3911:
2622:
2552:
an extensive macro system—functioning as a compiler-API—that can create new syntactic forms,
116:
3984:
5201:
5196:
4971:
4862:
4285:
4268:
3100:
2793:
1459:{\displaystyle \mathbb {R} \times \mathbb {R} \times \mathbb {R} \rightarrow \mathbb {R} }
1865:
function defined here produces a function that is used for the button's callback action.
5191:
5181:
5176:
5115:
4986:
4391:
4126:
3871:
2442:
2150:
468:
100:
95:
elimination. Racket takes this further: the language is made fully safe-for-space, via
3933:
1786:
function requires a three-argument function for its first argument, which the curried
5303:
5153:
5100:
5080:
5032:
5001:
4683:
2630:
accommodates calling typed code from untyped code and vice versa, generating dynamic
2441:-like code, that can allocate memory, dereference pointers, call out to functions in
1822:
layer which the libraries mentioned above build on. It is implemented via the native
2549:
a flexible module system that is used for linking code and for namespace management,
5219:
4752:
4162:
4146:
3870:
Tobin-Hochstadt, S.; St-Amour, V.; Culpepper, R.; Flatt, M.; Felleisen, M. (2011).
2602:
2142:
120:
1853:
The following simple guessing game demonstrates coding with the GUI toolkit. The
5171:
5105:
5072:
5024:
5006:
4757:
4567:
4350:
4237:
4200:
4136:
2626:
1831:
846:
3998:
5047:
4904:
4889:
4688:
4589:
4579:
4439:
4263:
2907:
1803:
1466:(three-dimensional) Gaussians, as concentric, partially transparent surfaces:
973:
4909:
4603:
4419:
4396:
4371:
4291:
4067:
1847:
92:
79:
in Racket. Therefore, the build process uses the conservative collector for
3099:(HtDP), the textbook that several PLT developers have authored, and in the
2545:
languages. This is the result of combining a number of important features:
636:
The following extends the "echo server" example with such a custodian use:
4693:
4678:
4663:
4553:
4548:
4496:
4457:
4170:
3329:
1846:
and others. The Racket API is a class-based toolkit, somewhat related to
460:
1495:;; Returns an R x R x R -> R Gaussian function centered at (cx,cy,cz)
4914:
4835:
4658:
4648:
4633:
4593:
4558:
4501:
4491:
4486:
4381:
2903:
2797:
1823:
5211:
4721:
4618:
4584:
4530:
4519:
4511:
4449:
4345:
4309:
2899:
2582:
2453:
2434:
298:
2558:
a way to specify (and implement) parsers for new language syntaxes.
4801:
4643:
4613:
4525:
4258:
2418:
1843:
1835:
1693:;; Constructs an image value representing the sum of two Gaussians
46:(GUI), and capable of tasks from web server creation to graphics.
3894:
3111:
library for creating pictures in the teaching languages, and the
1137:
The library also includes support for protocols other than http:
4731:
4429:
4301:
2417:
Extension packages also exist on PLaneT, for example to include
1477:;; Visualize a sum of two 3D Gaussians as concentric isosurfaces
1287:
function is defined and called (at the same time) to generate a
985:
271:
4071:
4062:
1839:
1827:
1819:
1807:
1799:
1795:
134:
The following program starts an "echo server" on port 12345.
4036:
Creative
Commons Attribution-ShareAlike 3.0 Unported License
980:
language. Each time a connection is made to the server, the
4937:
MIT Computer
Science and Artificial Intelligence Laboratory
4034:, which is licensed in a way that permits reuse under the
4030:
2537:
Racket's most notable feature is its ability to build new
285:
function to construct a sequence that walks the tree. The
22:
Racket has been under active development as a vehicle for
4055:
4025:
1426:
211:;; handle an incoming connection in a (green) thread
5210:
5162:
5124:
5071:
4960:
4923:
4882:
4875:
4855:
4817:
4810:
4784:
4773:
4743:
4702:
4510:
4477:
4470:
4448:
4329:
4236:
4227:
4218:
4184:
4105:
1794:
can also write files in
Portable Network Graphics (
256:;; and immediately loop back to accept more clients
3897:: Racket's centralized package distribution system
1480:;; Note: this example requires Racket 5.2 or later
1458:
1283:(HtDP) based courses. In the following example, a
4846:Structure and Interpretation of Computer Programs
1615:;; Lifts + to operate on three-argument functions
2437:. The interface allows writing unsafe low-level
115:Racket's system interface includes asynchronous
3328:Racket comes with a full implementation of the
3107:—the "beginning student language". It uses the
3879:Programming Language Design and Implementation
3764:language, so it is a somewhat similar variant,
4083:
1790:supplies. Besides constructing image values,
8:
3999:http://cs.brown.edu/courses/cs173/2012/book/
3095:knowledge. This approach is heavily used in
1262:"Time to go out and move the car."
999:;; A tiny "hello world" web server
55:Garbage collection, tail calls, space safety
4943:Stanford Artificial Intelligence Laboratory
5244:
4964:
4879:
4814:
4781:
4474:
4233:
4224:
4109:
4090:
4076:
4068:
2208:"Making presentations in Racket"
2145:can also be developed in Racket using the
2125:; show the window to start the application
1148:;; Sending a timed email alert from racket
1857:class implements a top-level window, and
1452:
1451:
1444:
1443:
1436:
1435:
1428:
1427:
1425:
3890:
3888:
3103:project. The following program uses the
123:, synchronization channels, semaphores,
3862:
2646:;; Using higher-order occurrence typing
4042:. All relevant terms must be followed.
3851:; the hash table is used as a function
3797:; sexpr syntax, using mylang semantics
3770:implicitly quote all unknown variables
467:executable. Racket ignores an initial
312:;; Finds Racket sources in all subdirs
4931:Massachusetts Institute of Technology
3592:Finally, the following example is an
2863:;; Print the 1000th Fibonacci number:
459:Both of these programs can be run in
382:;; Report each unique line from stdin
7:
5264:
3908:"Rebuilding Racket's Graphics Layer"
3115:library for interactive animations.
297:tests these paths against the given
3956:Principles of Programming Languages
1826:application programming interface (
4948:University of California, Berkeley
4792:Scheme Requests for Implementation
3836:; A and B are self-evaluating here
631:Resource management and sandboxing
463:, or on the command line, via the
293:to each path in the sequence, and
14:
4609:Knowledge Engineering Environment
4028:, this article uses content from
3941:Scheme and Functional Programming
3783:file, it can be used as follows:
5284:
5283:
5274:
5273:
5263:
5253:
5243:
1229:"Parking meter alert!"
87:Like all implementations in the
3126:;; Any key inflates the balloon
2524:"play sound.wav wait"
324:; iterate over the current tree
91:family, Racket implements full
59:Racket can use three different
2447:interface description language
1806:and Scalable Vector Graphics (
1448:
984:function is called to get the
972:The next example implements a
111:System interface and scripting
1:
4718:Common Lisp Interface Manager
3760:provides everything from the
1818:Racket implements a portable
1798:), Portable Document Format (
473:command-line argument parsing
129:Transmission Control Protocol
67:Originally, the conservative
24:programming language research
18:Racket (programming language)
4117:Automatic storage management
3910:. 2010-12-08. Archived from
3779:If this code is stored in a
2800:. In the following example,
2792:language is a language with
2053:; success => close window
988:to send back to the client.
4366:Game Oriented Assembly Lisp
3971:Dynamic Languages Symposium
1850:which was used originally.
968:Web and network programming
5331:
2585:). Alternatively, use the
2497:"mciSendStringA"
2431:foreign function interface
2425:Foreign function interface
15:
5241:
4967:
4195:Common Lisp Object System
4112:
4099:Lisp programming language
2232:"Some pictures"
1861:implements a button. The
668:;; per-connection handler
33:domain-specific languages
4895:Bolt, Beranek and Newman
4825:Common Lisp the Language
3872:"Languages as Libraries"
3785:
3598:
3572:
3562:
3334:
3117:
2913:
2894:Racket comes with three
2806:
2637:
2607:
2591:
2589:executable on the file.
2467:;; Simple use of the FFI
2458:
2166:
1867:
1777:; labeling adds a legend
1468:
1293:
1139:
1051:
990:
851:
638:
477:
373:
303:
136:
105:just-in-time compilation
44:graphical user interface
2625:variant of Racket. The
1041:"Hello World"
594:"~a:~a: ~a~n"
69:Boehm garbage collector
4830:How to Design Programs
4669:Portable Standard Lisp
4315:Steel Bank Common Lisp
4280:Embeddable Common Lisp
4253:Armed Bear Common Lisp
4132:Higher-order functions
3794:"mylang.rkt"
3584:type-case, and test."
3097:How to Design Programs
2906:implementation; and a
2898:languages: Racklog, a
2796:semantics, similar to
1966:; horizontal container
1876:;; A GUI guessing game
1460:
1281:How to Design Programs
812:custodian-shutdown-all
178:;; create a TCP server
97:live variable analysis
39:for more information.
5139:Shriram Krishnamurthi
4841:Practical Common Lisp
4797:Common Lisp HyperSpec
4321:Symbolics Common Lisp
4297:Macintosh Common Lisp
3934:"The Scribble Reader"
3932:Barzilay, E. (2009).
2370:"darkgreen"
2187:"Slideshow"
1461:
1060:;; Simple web scraper
480:#!/usr/bin/env racket
354:"source file: ~a
29:programming languages
5310:Software development
5043:Robert Tappan Morris
4997:Robert Bruce Findler
4765:Space-cadet keyboard
4176:Tree data structures
4153:Read–eval–print loop
4038:, but not under the
2815:;; An infinite list:
2346:"darkblue"
2149:language, much like
2065:; create all buttons
1424:
920:read-eval-print-loop
840:read–eval–print loop
339:#rx"rkt$ "
4785:Technical standards
4248:Allegro Common Lisp
3596:of a new language:
3559:Plai and plai-typed
2610:#lang scribble/text
2594:#lang scribble/base
2578:different purpose.
2533:Language extensions
2406:"darkred"
1289:Sierpinski triangle
5315:Language workbench
5149:Gerald Jay Sussman
5134:Matthias Felleisen
5086:Richard P. Gabriel
5017:Richard Greenblatt
4992:Matthias Felleisen
4275:Corman Common Lisp
4015:macro-programming.
3682:define-syntax-rule
3652:define-syntax-rule
3588:Creating languages
2902:-like language; a
2760:"hello "
2621:Typed Racket is a
2603:preprocessing text
2429:Racket features a
1456:
1087:let-me-google-that
625:filename extension
61:garbage collectors
5297:
5296:
5237:
5236:
5233:
5232:
5225:Robin Popplestone
5144:Guy L. Steele Jr.
5111:Guy L. Steele Jr.
4956:
4955:
4871:
4870:
4739:
4738:
4629:Lisp Machine Lisp
4539:
4538:
4466:
4465:
4214:
4213:
3180:"solid"
2896:logic programming
2890:Logic programming
2766:"world"
2500:"Winmm"
2433:that is based on
1921:; toplevel window
1244:"EMAIL"
1223:"EMAIL"
1214:send-mail-message
956:close-output-port
710:close-output-port
247:close-output-port
5322:
5287:
5286:
5277:
5276:
5267:
5266:
5257:
5247:
5246:
5091:Philip Greenspun
5063:Richard Stallman
4977:Daniel G. Bobrow
4965:
4880:
4815:
4782:
4704:Operating system
4475:
4234:
4225:
4110:
4092:
4085:
4078:
4069:
4059:
4058:
4056:Official website
4016:
4013:
4008:
4002:
3995:
3989:
3988:
3981:
3975:
3974:
3966:
3960:
3959:
3951:
3945:
3944:
3938:
3929:
3923:
3922:
3920:
3919:
3904:
3898:
3892:
3883:
3882:
3876:
3867:
3852:
3849:
3846:
3843:
3840:
3837:
3834:
3831:
3828:
3825:
3822:
3819:
3816:
3813:
3810:
3807:
3804:
3801:
3798:
3795:
3792:
3789:
3782:
3763:
3752:
3749:
3746:
3743:
3740:
3737:
3734:
3731:
3728:
3725:
3722:
3719:
3716:
3713:
3710:
3707:
3704:
3701:
3698:
3695:
3692:
3689:
3686:
3683:
3680:
3677:
3674:
3671:
3668:
3665:
3662:
3659:
3656:
3653:
3650:
3647:
3644:
3641:
3638:
3635:
3632:
3629:
3626:
3623:
3620:
3617:
3614:
3611:
3608:
3605:
3602:
3579:
3576:
3569:
3566:
3554:
3551:
3548:
3545:
3542:
3539:
3536:
3533:
3530:
3527:
3524:
3521:
3518:
3515:
3512:
3509:
3506:
3503:
3500:
3497:
3494:
3491:
3488:
3485:
3482:
3479:
3476:
3473:
3470:
3467:
3464:
3461:
3458:
3455:
3452:
3449:
3446:
3443:
3440:
3437:
3434:
3431:
3428:
3425:
3422:
3419:
3416:
3413:
3410:
3407:
3404:
3401:
3398:
3395:
3392:
3389:
3386:
3383:
3380:
3377:
3374:
3371:
3368:
3365:
3362:
3359:
3356:
3353:
3350:
3347:
3344:
3341:
3338:
3319:
3316:
3313:
3310:
3307:
3304:
3301:
3298:
3295:
3292:
3289:
3286:
3283:
3280:
3277:
3274:
3271:
3268:
3265:
3262:
3259:
3256:
3253:
3250:
3247:
3244:
3241:
3238:
3235:
3232:
3229:
3226:
3223:
3220:
3217:
3214:
3211:
3208:
3205:
3202:
3199:
3196:
3193:
3190:
3187:
3184:
3181:
3178:
3175:
3172:
3169:
3166:
3163:
3160:
3157:
3154:
3151:
3148:
3145:
3142:
3139:
3136:
3133:
3130:
3127:
3124:
3121:
3114:
3110:
3106:
3085:
3082:
3079:
3076:
3073:
3070:
3067:
3064:
3061:
3058:
3055:
3052:
3049:
3046:
3043:
3040:
3037:
3034:
3031:
3028:
3025:
3022:
3019:
3016:
3013:
3010:
3007:
3004:
3001:
2998:
2995:
2992:
2989:
2986:
2983:
2980:
2977:
2974:
2971:
2968:
2965:
2962:
2959:
2956:
2953:
2950:
2947:
2944:
2941:
2938:
2935:
2932:
2929:
2926:
2923:
2920:
2917:
2885:
2882:
2879:
2876:
2873:
2870:
2867:
2864:
2861:
2858:
2855:
2852:
2849:
2846:
2843:
2840:
2837:
2834:
2831:
2828:
2825:
2822:
2819:
2816:
2813:
2810:
2803:
2791:
2779:
2776:
2773:
2770:
2767:
2764:
2761:
2758:
2755:
2752:
2749:
2746:
2743:
2740:
2737:
2734:
2731:
2728:
2725:
2722:
2719:
2716:
2713:
2710:
2707:
2704:
2701:
2698:
2695:
2692:
2689:
2686:
2683:
2680:
2677:
2674:
2671:
2668:
2665:
2662:
2659:
2656:
2653:
2650:
2647:
2644:
2641:
2623:statically typed
2611:
2595:
2588:
2528:
2525:
2522:
2519:
2516:
2513:
2510:
2507:
2504:
2501:
2498:
2495:
2492:
2489:
2486:
2483:
2480:
2477:
2474:
2471:
2468:
2465:
2462:
2443:shared libraries
2413:
2410:
2407:
2404:
2401:
2398:
2395:
2392:
2389:
2386:
2383:
2380:
2377:
2374:
2371:
2368:
2365:
2362:
2359:
2356:
2353:
2350:
2347:
2344:
2341:
2338:
2335:
2334:filled-rectangle
2332:
2329:
2326:
2323:
2320:
2317:
2314:
2311:
2308:
2305:
2302:
2299:
2296:
2293:
2290:
2287:
2284:
2281:
2278:
2275:
2272:
2269:
2266:
2263:
2260:
2257:
2254:
2251:
2248:
2245:
2242:
2239:
2236:
2233:
2230:
2227:
2224:
2221:
2218:
2215:
2212:
2209:
2206:
2203:
2200:
2197:
2194:
2191:
2188:
2185:
2182:
2179:
2176:
2173:
2170:
2163:
2159:
2148:
2126:
2123:
2120:
2117:
2114:
2111:
2108:
2105:
2102:
2099:
2096:
2093:
2090:
2087:
2084:
2081:
2078:
2075:
2072:
2069:
2066:
2063:
2060:
2057:
2054:
2051:
2048:
2045:
2042:
2039:
2036:
2033:
2030:
2027:
2024:
2021:
2018:
2015:
2012:
2009:
2006:
2003:
2000:
1997:
1994:
1991:
1988:
1985:
1982:
1979:
1976:
1973:
1970:
1967:
1964:
1961:
1960:horizontal-pane%
1958:
1955:
1952:
1949:
1946:
1943:
1940:
1937:
1934:
1931:
1928:
1925:
1922:
1919:
1916:
1913:
1910:
1907:
1904:
1901:
1898:
1895:
1892:
1889:
1886:
1883:
1880:
1877:
1874:
1871:
1864:
1860:
1856:
1793:
1789:
1785:
1778:
1775:
1772:
1769:
1766:
1763:
1760:
1757:
1754:
1751:
1748:
1745:
1742:
1739:
1736:
1733:
1730:
1727:
1724:
1721:
1718:
1715:
1712:
1709:
1706:
1703:
1700:
1697:
1694:
1691:
1688:
1685:
1682:
1679:
1676:
1673:
1670:
1667:
1664:
1661:
1658:
1655:
1652:
1649:
1646:
1643:
1640:
1637:
1634:
1631:
1628:
1625:
1622:
1619:
1616:
1613:
1610:
1607:
1604:
1601:
1598:
1595:
1592:
1589:
1586:
1583:
1580:
1577:
1574:
1571:
1568:
1565:
1562:
1559:
1556:
1553:
1550:
1547:
1544:
1541:
1538:
1535:
1532:
1529:
1526:
1523:
1520:
1517:
1514:
1511:
1508:
1505:
1502:
1499:
1496:
1493:
1490:
1487:
1484:
1481:
1478:
1475:
1472:
1465:
1463:
1462:
1457:
1455:
1447:
1439:
1431:
1419:
1408:
1405:
1402:
1399:
1396:
1393:
1390:
1387:
1384:
1381:
1378:
1375:
1372:
1369:
1366:
1363:
1360:
1357:
1354:
1351:
1348:
1345:
1342:
1339:
1336:
1333:
1330:
1327:
1324:
1321:
1318:
1315:
1312:
1309:
1306:
1303:
1300:
1297:
1286:
1278:
1266:
1263:
1260:
1257:
1254:
1251:
1248:
1245:
1242:
1239:
1236:
1233:
1230:
1227:
1224:
1221:
1218:
1215:
1212:
1209:
1206:
1203:
1200:
1197:
1194:
1191:
1188:
1185:
1182:
1179:
1176:
1173:
1170:
1167:
1164:
1161:
1158:
1155:
1152:
1149:
1146:
1143:
1133:
1130:
1127:
1124:
1121:
1118:
1115:
1112:
1109:
1106:
1103:
1100:
1097:
1094:
1091:
1088:
1085:
1082:
1079:
1076:
1073:
1070:
1067:
1064:
1061:
1058:
1055:
1045:
1042:
1039:
1036:
1033:
1030:
1027:
1024:
1021:
1018:
1015:
1012:
1009:
1006:
1003:
1000:
997:
996:web-server/insta
994:
983:
979:
978:web-server/insta
963:
960:
957:
954:
951:
948:
945:
942:
939:
936:
933:
930:
927:
924:
921:
918:
915:
912:
909:
906:
903:
900:
897:
894:
891:
888:
885:
882:
879:
876:
873:
870:
867:
864:
861:
858:
855:
836:
828:
825:
822:
819:
816:
813:
810:
807:
804:
801:
798:
795:
792:
789:
786:
783:
780:
777:
774:
771:
768:
765:
762:
759:
756:
753:
750:
747:
744:
741:
738:
735:
732:
729:
726:
723:
720:
717:
714:
711:
708:
705:
702:
699:
696:
693:
690:
687:
684:
681:
678:
675:
672:
669:
666:
663:
660:
657:
654:
651:
648:
645:
642:
619:
616:
613:
610:
607:
604:
601:
598:
595:
592:
589:
586:
583:
580:
577:
574:
571:
568:
565:
562:
559:
556:
553:
550:
547:
544:
541:
538:
535:
532:
529:
526:
523:
520:
517:
514:
511:
508:
505:
502:
499:
496:
493:
490:
487:
484:
481:
466:
455:
452:
449:
446:
443:
440:
437:
434:
431:
428:
425:
422:
419:
416:
413:
410:
407:
404:
401:
398:
395:
392:
389:
386:
383:
380:
377:
367:
364:
361:
358:
355:
352:
349:
346:
343:
340:
337:
334:
331:
328:
325:
322:
319:
316:
313:
310:
307:
296:
292:
288:
284:
266:
263:
260:
257:
254:
251:
248:
245:
242:
239:
236:
233:
230:
227:
224:
221:
218:
215:
212:
209:
206:
203:
200:
197:
194:
191:
188:
185:
182:
179:
176:
173:
170:
167:
164:
161:
158:
155:
152:
149:
146:
143:
140:
117:non-blocking I/O
37:the main article
5330:
5329:
5325:
5324:
5323:
5321:
5320:
5319:
5300:
5299:
5298:
5293:
5229:
5206:
5202:Cynthia Solomon
5197:Mitchel Resnick
5158:
5120:
5067:
5021:Timothy P. Hart
4982:William Clinger
4972:Edmund Berkeley
4952:
4919:
4867:
4863:ProgramByDesign
4851:
4806:
4776:
4769:
4735:
4698:
4535:
4506:
4462:
4444:
4325:
4286:GNU Common Lisp
4269:CMU Common Lisp
4239:
4220:Implementations
4210:
4180:
4101:
4096:
4054:
4053:
4050:
4020:
4019:
4011:
4009:
4005:
3996:
3992:
3985:"1 PLAI Scheme"
3983:
3982:
3978:
3968:
3967:
3963:
3953:
3952:
3948:
3936:
3931:
3930:
3926:
3917:
3915:
3906:
3905:
3901:
3893:
3886:
3874:
3869:
3868:
3864:
3859:
3854:
3853:
3850:
3847:
3844:
3841:
3838:
3835:
3832:
3829:
3826:
3823:
3820:
3817:
3814:
3811:
3808:
3805:
3802:
3799:
3796:
3793:
3790:
3787:
3780:
3761:
3756:This language:
3754:
3753:
3750:
3747:
3744:
3741:
3738:
3735:
3732:
3729:
3726:
3723:
3720:
3717:
3714:
3711:
3708:
3705:
3702:
3699:
3696:
3693:
3690:
3687:
3684:
3681:
3678:
3675:
3672:
3669:
3666:
3663:
3660:
3657:
3654:
3651:
3648:
3645:
3642:
3639:
3636:
3633:
3630:
3627:
3624:
3621:
3618:
3615:
3612:
3609:
3606:
3603:
3600:
3590:
3581:
3580:
3577:
3574:
3571:
3570:
3567:
3564:
3561:
3556:
3555:
3552:
3549:
3546:
3543:
3540:
3537:
3534:
3531:
3528:
3525:
3522:
3519:
3516:
3513:
3510:
3507:
3504:
3501:
3498:
3495:
3492:
3489:
3486:
3483:
3480:
3477:
3474:
3471:
3468:
3465:
3462:
3459:
3456:
3453:
3450:
3447:
3444:
3441:
3438:
3435:
3432:
3429:
3426:
3423:
3420:
3417:
3414:
3411:
3408:
3405:
3402:
3399:
3396:
3393:
3390:
3387:
3384:
3381:
3378:
3375:
3372:
3369:
3366:
3363:
3360:
3357:
3354:
3351:
3348:
3345:
3342:
3339:
3336:
3326:
3321:
3320:
3317:
3314:
3311:
3308:
3305:
3302:
3299:
3296:
3293:
3290:
3287:
3284:
3281:
3278:
3275:
3272:
3269:
3266:
3263:
3260:
3257:
3254:
3251:
3248:
3245:
3242:
3239:
3236:
3233:
3230:
3227:
3224:
3221:
3218:
3215:
3212:
3209:
3206:
3203:
3200:
3197:
3194:
3191:
3188:
3185:
3183:"red"
3182:
3179:
3176:
3173:
3170:
3167:
3164:
3161:
3158:
3155:
3152:
3149:
3146:
3143:
3140:
3137:
3134:
3131:
3128:
3125:
3122:
3119:
3112:
3108:
3104:
3101:ProgramByDesign
3092:
3090:Education tools
3087:
3086:
3083:
3080:
3077:
3074:
3071:
3068:
3065:
3062:
3059:
3056:
3053:
3050:
3047:
3044:
3041:
3038:
3035:
3032:
3029:
3026:
3023:
3020:
3017:
3014:
3011:
3008:
3005:
3002:
2999:
2996:
2993:
2990:
2987:
2984:
2981:
2978:
2975:
2972:
2969:
2966:
2963:
2960:
2957:
2954:
2951:
2948:
2945:
2942:
2939:
2936:
2933:
2930:
2927:
2924:
2921:
2918:
2915:
2892:
2887:
2886:
2883:
2880:
2877:
2874:
2871:
2868:
2865:
2862:
2859:
2856:
2853:
2850:
2847:
2844:
2841:
2838:
2835:
2832:
2829:
2826:
2823:
2820:
2817:
2814:
2811:
2808:
2801:
2794:lazy evaluation
2789:
2786:
2781:
2780:
2777:
2774:
2771:
2768:
2765:
2762:
2759:
2756:
2753:
2750:
2747:
2744:
2741:
2738:
2735:
2732:
2729:
2726:
2723:
2720:
2717:
2714:
2711:
2708:
2705:
2702:
2699:
2696:
2693:
2690:
2687:
2684:
2681:
2678:
2675:
2672:
2669:
2666:
2663:
2660:
2657:
2654:
2651:
2648:
2645:
2642:
2639:
2619:
2614:
2613:
2609:
2598:
2597:
2593:
2586:
2575:
2543:general-purpose
2539:domain-specific
2535:
2530:
2529:
2526:
2523:
2521:mci-send-string
2520:
2517:
2514:
2511:
2508:
2505:
2502:
2499:
2496:
2493:
2490:
2488:mci-send-string
2487:
2484:
2481:
2478:
2475:
2472:
2469:
2466:
2463:
2460:
2427:
2415:
2414:
2411:
2408:
2405:
2402:
2399:
2396:
2393:
2390:
2387:
2384:
2381:
2378:
2375:
2372:
2369:
2366:
2363:
2360:
2357:
2354:
2351:
2348:
2345:
2342:
2339:
2336:
2333:
2330:
2327:
2324:
2321:
2318:
2315:
2312:
2309:
2306:
2303:
2300:
2297:
2294:
2291:
2288:
2285:
2282:
2279:
2276:
2273:
2270:
2267:
2264:
2261:
2258:
2255:
2252:
2249:
2246:
2243:
2240:
2237:
2234:
2231:
2228:
2225:
2222:
2219:
2216:
2213:
2210:
2207:
2204:
2201:
2198:
2195:
2192:
2189:
2186:
2183:
2180:
2177:
2174:
2171:
2168:
2161:
2157:
2146:
2136:
2128:
2127:
2124:
2121:
2118:
2115:
2112:
2109:
2106:
2103:
2100:
2097:
2094:
2091:
2088:
2085:
2082:
2079:
2076:
2073:
2070:
2067:
2064:
2061:
2058:
2055:
2052:
2049:
2046:
2043:
2040:
2037:
2034:
2031:
2028:
2025:
2022:
2019:
2016:
2013:
2010:
2007:
2004:
2001:
1998:
1995:
1992:
1989:
1986:
1983:
1980:
1977:
1974:
1971:
1968:
1965:
1962:
1959:
1956:
1953:
1950:
1947:
1944:
1941:
1938:
1935:
1932:
1929:
1926:
1923:
1920:
1917:
1914:
1911:
1908:
1905:
1902:
1899:
1896:
1893:
1890:
1887:
1884:
1881:
1878:
1875:
1872:
1869:
1862:
1858:
1854:
1816:
1814:GUI programming
1791:
1787:
1783:
1780:
1779:
1776:
1773:
1770:
1767:
1764:
1761:
1758:
1755:
1752:
1749:
1746:
1743:
1740:
1737:
1734:
1731:
1728:
1725:
1722:
1719:
1716:
1713:
1710:
1707:
1704:
1701:
1698:
1695:
1692:
1689:
1686:
1683:
1680:
1677:
1674:
1671:
1668:
1665:
1662:
1659:
1656:
1653:
1650:
1647:
1644:
1641:
1638:
1635:
1632:
1629:
1626:
1623:
1620:
1617:
1614:
1611:
1608:
1605:
1602:
1599:
1596:
1593:
1590:
1587:
1584:
1581:
1578:
1575:
1572:
1569:
1566:
1563:
1560:
1557:
1554:
1551:
1548:
1545:
1542:
1539:
1536:
1533:
1530:
1527:
1524:
1521:
1518:
1515:
1512:
1509:
1506:
1503:
1500:
1497:
1494:
1491:
1488:
1485:
1482:
1479:
1476:
1473:
1470:
1422:
1421:
1417:
1410:
1409:
1406:
1403:
1400:
1397:
1394:
1391:
1388:
1385:
1382:
1379:
1376:
1373:
1370:
1367:
1364:
1361:
1358:
1355:
1352:
1349:
1346:
1343:
1340:
1337:
1334:
1331:
1328:
1325:
1322:
1319:
1316:
1313:
1310:
1307:
1304:
1301:
1298:
1295:
1284:
1276:
1273:
1268:
1267:
1264:
1261:
1258:
1255:
1252:
1249:
1246:
1243:
1240:
1237:
1234:
1231:
1228:
1225:
1222:
1219:
1216:
1213:
1210:
1207:
1204:
1201:
1198:
1195:
1192:
1189:
1186:
1183:
1180:
1177:
1174:
1171:
1168:
1165:
1162:
1159:
1156:
1153:
1150:
1147:
1144:
1141:
1135:
1134:
1131:
1128:
1125:
1122:
1119:
1116:
1113:
1110:
1107:
1104:
1101:
1098:
1095:
1092:
1089:
1086:
1083:
1080:
1077:
1074:
1071:
1068:
1065:
1062:
1059:
1056:
1053:
1047:
1046:
1043:
1040:
1037:
1034:
1031:
1028:
1025:
1022:
1019:
1016:
1013:
1010:
1007:
1004:
1001:
998:
995:
992:
981:
977:
970:
965:
964:
961:
958:
955:
952:
949:
946:
943:
940:
937:
934:
931:
928:
925:
922:
919:
916:
913:
910:
907:
904:
901:
898:
895:
892:
889:
886:
883:
880:
877:
874:
871:
868:
865:
862:
859:
856:
853:
834:
830:
829:
826:
823:
820:
817:
814:
811:
808:
805:
802:
799:
796:
793:
790:
787:
784:
781:
778:
775:
772:
769:
766:
763:
760:
757:
754:
751:
748:
745:
742:
739:
736:
733:
730:
727:
724:
721:
718:
715:
712:
709:
706:
703:
700:
697:
694:
691:
688:
685:
682:
679:
676:
673:
670:
667:
664:
661:
658:
655:
652:
649:
646:
643:
640:
633:
621:
620:
617:
614:
611:
608:
605:
602:
599:
596:
593:
590:
587:
584:
581:
578:
575:
572:
569:
566:
563:
560:
557:
554:
551:
548:
545:
542:
539:
536:
533:
530:
527:
524:
521:
518:
515:
512:
509:
506:
503:
500:
497:
494:
491:
488:
485:
482:
479:
464:
457:
456:
453:
450:
447:
444:
441:
438:
435:
432:
429:
426:
423:
420:
417:
414:
411:
408:
405:
402:
399:
396:
393:
390:
387:
384:
381:
378:
375:
369:
368:
365:
362:
359:
356:
353:
350:
347:
344:
341:
338:
335:
332:
329:
326:
323:
320:
317:
314:
311:
308:
305:
294:
290:
286:
282:
268:
267:
264:
261:
258:
255:
252:
249:
246:
243:
240:
237:
234:
231:
228:
225:
222:
219:
216:
213:
210:
207:
204:
201:
198:
195:
192:
189:
186:
183:
180:
177:
174:
171:
168:
165:
162:
159:
156:
153:
150:
147:
144:
141:
138:
131:(TCP) sockets.
113:
57:
52:
50:Runtime support
20:
12:
11:
5:
5328:
5326:
5318:
5317:
5312:
5302:
5301:
5295:
5294:
5242:
5239:
5238:
5235:
5234:
5231:
5230:
5228:
5227:
5222:
5216:
5214:
5208:
5207:
5205:
5204:
5199:
5194:
5192:Seymour Papert
5189:
5184:
5182:Wally Feurzeig
5179:
5177:Denison Bollay
5174:
5168:
5166:
5160:
5159:
5157:
5156:
5151:
5146:
5141:
5136:
5130:
5128:
5122:
5121:
5119:
5118:
5116:Daniel Weinreb
5113:
5108:
5103:
5098:
5088:
5083:
5077:
5075:
5069:
5068:
5066:
5065:
5060:
5055:
5050:
5045:
5040:
5035:
5030:
5027:
5022:
5019:
5014:
5009:
5004:
4999:
4994:
4989:
4987:R. Kent Dybvig
4984:
4979:
4974:
4968:
4962:
4958:
4957:
4954:
4953:
4951:
4950:
4945:
4940:
4934:
4927:
4925:
4921:
4920:
4918:
4917:
4912:
4907:
4902:
4897:
4892:
4890:Apple Computer
4886:
4884:
4877:
4873:
4872:
4869:
4868:
4866:
4865:
4859:
4857:
4853:
4852:
4850:
4849:
4843:
4838:
4833:
4827:
4821:
4819:
4812:
4808:
4807:
4805:
4804:
4799:
4794:
4788:
4786:
4779:
4771:
4770:
4768:
4767:
4762:
4761:
4760:
4749:
4747:
4741:
4740:
4737:
4736:
4734:
4729:
4724:
4715:
4708:
4706:
4700:
4699:
4697:
4696:
4691:
4686:
4681:
4676:
4671:
4666:
4661:
4656:
4651:
4646:
4641:
4636:
4631:
4626:
4621:
4616:
4611:
4606:
4601:
4596:
4587:
4582:
4577:
4561:
4556:
4551:
4546:
4540:
4537:
4536:
4534:
4533:
4528:
4523:
4516:
4514:
4508:
4507:
4505:
4504:
4499:
4494:
4489:
4483:
4481:
4472:
4471:Unstandardized
4468:
4467:
4464:
4463:
4461:
4460:
4454:
4452:
4446:
4445:
4443:
4442:
4437:
4432:
4427:
4422:
4417:
4407:
4404:
4399:
4394:
4392:MIT/GNU Scheme
4389:
4384:
4379:
4374:
4369:
4363:
4358:
4353:
4348:
4343:
4335:
4333:
4327:
4326:
4324:
4323:
4318:
4312:
4307:
4304:
4299:
4294:
4289:
4283:
4277:
4272:
4266:
4261:
4256:
4250:
4244:
4242:
4231:
4222:
4216:
4215:
4212:
4211:
4209:
4208:
4203:
4198:
4191:
4189:
4182:
4181:
4179:
4178:
4173:
4165:
4160:
4155:
4150:
4144:
4139:
4134:
4129:
4127:Dynamic typing
4124:
4119:
4113:
4107:
4103:
4102:
4097:
4095:
4094:
4087:
4080:
4072:
4066:
4065:
4060:
4049:
4048:External links
4046:
4045:
4044:
4018:
4017:
4003:
3990:
3976:
3961:
3946:
3924:
3899:
3884:
3861:
3860:
3858:
3855:
3786:
3777:
3776:
3775:
3774:
3771:
3765:
3599:
3594:implementation
3589:
3586:
3573:
3563:
3560:
3557:
3335:
3325:
3322:
3147:2htdp/universe
3118:
3113:2htdp/universe
3091:
3088:
2914:
2891:
2888:
2807:
2785:
2782:
2638:
2618:
2615:
2608:
2592:
2574:
2571:
2560:
2559:
2556:
2553:
2550:
2534:
2531:
2459:
2426:
2423:
2167:
2135:
2132:
2083:"~a"
1868:
1815:
1812:
1469:
1454:
1450:
1446:
1442:
1438:
1434:
1430:
1294:
1272:
1269:
1140:
1126:string->url
1052:
1023:response/xexpr
991:
969:
966:
884:make-evaluator
866:racket/sandbox
852:
835:racket/sandbox
639:
632:
629:
543:"$ "
478:
374:
304:
137:
112:
109:
101:lambda lifting
85:
84:
76:
73:
56:
53:
51:
48:
16:Main article:
13:
10:
9:
6:
4:
3:
2:
5327:
5316:
5313:
5311:
5308:
5307:
5305:
5292:
5291:
5282:
5281:
5272:
5271:
5262:
5261:
5256:
5252:
5251:
5240:
5226:
5223:
5221:
5218:
5217:
5215:
5213:
5209:
5203:
5200:
5198:
5195:
5193:
5190:
5188:
5185:
5183:
5180:
5178:
5175:
5173:
5170:
5169:
5167:
5165:
5161:
5155:
5154:Julie Sussman
5152:
5150:
5147:
5145:
5142:
5140:
5137:
5135:
5132:
5131:
5129:
5127:
5123:
5117:
5114:
5112:
5109:
5107:
5104:
5102:
5101:David A. Moon
5099:
5096:
5092:
5089:
5087:
5084:
5082:
5081:Scott Fahlman
5079:
5078:
5076:
5074:
5070:
5064:
5061:
5059:
5058:Steve Russell
5056:
5054:
5051:
5049:
5046:
5044:
5041:
5039:
5038:John McCarthy
5036:
5034:
5033:David Luckham
5031:
5028:
5026:
5023:
5020:
5018:
5015:
5013:
5010:
5008:
5005:
5003:
5002:Matthew Flatt
5000:
4998:
4995:
4993:
4990:
4988:
4985:
4983:
4980:
4978:
4975:
4973:
4970:
4969:
4966:
4963:
4959:
4949:
4946:
4944:
4941:
4938:
4935:
4932:
4929:
4928:
4926:
4922:
4916:
4913:
4911:
4908:
4906:
4903:
4901:
4898:
4896:
4893:
4891:
4888:
4887:
4885:
4881:
4878:
4876:Organizations
4874:
4864:
4861:
4860:
4858:
4854:
4847:
4844:
4842:
4839:
4837:
4834:
4831:
4828:
4826:
4823:
4822:
4820:
4816:
4813:
4809:
4803:
4800:
4798:
4795:
4793:
4790:
4789:
4787:
4783:
4780:
4778:
4772:
4766:
4763:
4759:
4756:
4755:
4754:
4751:
4750:
4748:
4746:
4742:
4733:
4730:
4728:
4725:
4723:
4719:
4716:
4714:
4713:
4709:
4707:
4705:
4701:
4695:
4692:
4690:
4687:
4685:
4682:
4680:
4677:
4675:
4672:
4670:
4667:
4665:
4662:
4660:
4657:
4655:
4652:
4650:
4647:
4645:
4642:
4640:
4637:
4635:
4632:
4630:
4627:
4625:
4622:
4620:
4617:
4615:
4612:
4610:
4607:
4605:
4602:
4600:
4597:
4595:
4591:
4588:
4586:
4583:
4581:
4578:
4575:
4574:
4569:
4565:
4562:
4560:
4557:
4555:
4552:
4550:
4547:
4545:
4542:
4541:
4532:
4529:
4527:
4524:
4521:
4518:
4517:
4515:
4513:
4509:
4503:
4500:
4498:
4495:
4493:
4490:
4488:
4485:
4484:
4482:
4480:
4476:
4473:
4469:
4459:
4456:
4455:
4453:
4451:
4447:
4441:
4438:
4436:
4433:
4431:
4428:
4426:
4423:
4421:
4418:
4415:
4411:
4408:
4406:Pocket Scheme
4405:
4403:
4400:
4398:
4395:
4393:
4390:
4388:
4385:
4383:
4380:
4378:
4375:
4373:
4370:
4367:
4364:
4362:
4359:
4357:
4354:
4352:
4349:
4347:
4344:
4342:
4341:
4337:
4336:
4334:
4332:
4328:
4322:
4319:
4316:
4313:
4311:
4308:
4305:
4303:
4300:
4298:
4295:
4293:
4290:
4287:
4284:
4281:
4278:
4276:
4273:
4270:
4267:
4265:
4262:
4260:
4257:
4254:
4251:
4249:
4246:
4245:
4243:
4241:
4235:
4232:
4230:
4226:
4223:
4221:
4217:
4207:
4204:
4202:
4199:
4196:
4193:
4192:
4190:
4187:
4183:
4177:
4174:
4172:
4169:
4166:
4164:
4163:S-expressions
4161:
4159:
4156:
4154:
4151:
4148:
4147:M-expressions
4145:
4143:
4140:
4138:
4135:
4133:
4130:
4128:
4125:
4123:
4120:
4118:
4115:
4114:
4111:
4108:
4104:
4100:
4093:
4088:
4086:
4081:
4079:
4074:
4073:
4070:
4064:
4061:
4057:
4052:
4051:
4047:
4043:
4041:
4037:
4032:
4029:
4027:
4022:
4021:
4007:
4004:
4000:
3994:
3991:
3986:
3980:
3977:
3972:
3965:
3962:
3957:
3950:
3947:
3942:
3935:
3928:
3925:
3914:on 2013-02-02
3913:
3909:
3903:
3900:
3896:
3891:
3889:
3885:
3880:
3873:
3866:
3863:
3856:
3784:
3772:
3769:
3768:
3766:
3759:
3758:
3757:
3597:
3595:
3587:
3585:
3558:
3333:
3331:
3323:
3116:
3102:
3098:
3089:
2912:
2909:
2905:
2901:
2897:
2889:
2805:
2799:
2795:
2783:
2727:string-append
2636:
2633:
2628:
2624:
2616:
2606:
2604:
2590:
2584:
2579:
2572:
2570:
2567:
2563:
2557:
2554:
2551:
2548:
2547:
2546:
2544:
2540:
2532:
2457:
2455:
2450:
2448:
2444:
2440:
2436:
2432:
2424:
2422:
2420:
2165:
2154:
2152:
2144:
2143:presentations
2140:
2133:
2131:
2002:"."
1866:
1851:
1849:
1845:
1841:
1837:
1833:
1829:
1825:
1821:
1813:
1811:
1809:
1805:
1801:
1797:
1784:isosurfaces3d
1771:"g"
1705:isosurfaces3d
1467:
1440:
1432:
1414:
1292:
1290:
1282:
1270:
1208:; wait 3h 45m
1138:
1120:get-pure-port
1111:regexp-match*
1072:net/uri-codec
1050:
989:
987:
975:
967:
850:
848:
843:
842:(REPL) server
841:
734:define-values
637:
630:
628:
626:
567:regexp-match?
534:string-append
528:regexp-match?
476:
474:
470:
462:
372:
336:regexp-match?
302:
300:
295:regexp-match?
279:
277:
273:
184:define-values
135:
132:
130:
126:
125:sub-processes
122:
121:green threads
118:
110:
108:
106:
102:
98:
94:
90:
82:
81:bootstrapping
77:
74:
70:
66:
65:
64:
62:
54:
49:
47:
45:
40:
38:
34:
30:
25:
19:
5288:
5278:
5268:
5258:
5248:
5220:Rod Burstall
5187:Brian Harvey
4753:Lisp machine
4710:
4571:
4413:
4338:
4229:Standardized
4168:Self-hosting
4149:(deprecated)
4137:Linked lists
4122:Conditionals
4033:
4023:
4006:
3993:
3979:
3970:
3964:
3955:
3949:
3940:
3927:
3916:. Retrieved
3912:the original
3902:
3878:
3865:
3778:
3755:
3622:all-from-out
3593:
3591:
3582:
3327:
3093:
2893:
2787:
2643:typed/racket
2620:
2617:Typed Racket
2599:
2580:
2576:
2568:
2564:
2561:
2536:
2451:
2428:
2416:
2155:
2137:
2129:
1852:
1817:
1781:
1415:
1411:
1302:;; A picture
1291:of depth 8.
1274:
1157:net/sendmail
1136:
1048:
971:
908:parameterize
838:
831:
788:parameterize
634:
622:
537:""
492:command-line
458:
370:
283:in-directory
280:
269:
133:
114:
86:
58:
41:
21:
5172:Hal Abelson
5106:Kent Pitman
5073:Common Lisp
5025:Louis Hodes
5012:Paul Graham
5007:Phyllis Fox
4777:of practice
4758:TI Explorer
4351:Chez Scheme
4201:CommonLoops
4063:docs.racket
3812:make-hasheq
3332:language.
3135:2htdp/image
3109:2htdp/image
2784:Lazy Racket
2652:define-type
2627:type system
2494:get-ffi-obj
2464:racket/base
2379:scale+color
2355:scale+color
2328:scale+color
2262:scale+color
2071:make-object
1999:message-box
1810:) formats.
1311:2htdp/image
1277:2htdp/image
890:racket/base
847:file system
824:echo-server
725:echo-server
289:form binds
262:echo-server
172:echo-server
5304:Categories
5053:David Park
5048:Joel Moses
5029:Mike Levin
4905:Lucid Inc.
4856:Curriculum
4689:Spice Lisp
4590:Franz Lisp
4580:Emacs Lisp
4440:TinyScheme
4264:Clozure CL
4010:Note that
3918:2013-07-07
3857:References
3781:mylang.rkt
3643:rename-out
3616:except-out
3578:plai-typed
2908:miniKanren
2688:Str-or-Num
2655:Str-or-Num
2476:ffi/unsafe
2421:elements.
2098:make-check
1978:make-check
1873:racket/gui
1838:, and via
1804:PostScript
1782:Here, the
1323:sierpinski
1285:sierpinski
976:using the
974:web server
899:let-values
752:tcp-accept
659:tcp-listen
202:tcp-accept
157:tcp-listen
5095:10th rule
4924:Education
4910:Symbolics
4900:Harlequin
4811:Education
4775:Community
4604:Interlisp
4420:Scheme 48
4397:MultiLisp
4372:GNU Guile
4292:LispWorks
4158:Recursion
4026:this edit
3821:hash-set!
3352:procedure
2632:contracts
2322:hc-append
2241:vc-append
2172:slideshow
2162:hc-append
2158:vc-append
2147:slideshow
2134:Slideshow
1848:wxWidgets
1449:→
1441:×
1433:×
695:copy-port
442:hash-set!
430:displayln
301:pattern.
232:copy-port
93:tail call
5290:Category
5280:Category
4883:Business
4745:Hardware
4694:Zetalisp
4679:S-1 Lisp
4664:Picolisp
4554:BBN LISP
4549:AutoLISP
4497:StarLogo
4458:OpenLisp
4414:features
4171:compiler
4106:Features
4031:"Racket"
3724:hash-ref
3508:printnln
3330:ALGOL 60
3273:big-bang
3123:htdp/bsl
3105:htdp/bsl
3066:ancestor
3012:ancestor
2961:ancestor
2922:ancestor
2875:list-ref
2587:scribble
2573:Scribble
2277:colorize
2247:for/list
1939:message%
1735:gaussian
1717:gaussian
1507:gaussian
1350:triangle
1271:Graphics
755:listener
653:listener
501:base-dir
461:DrRacket
412:hash-ref
205:listener
151:listener
5270:Commons
4939:(CSAIL)
4915:Xanalys
4836:On Lisp
4659:PC-LISP
4649:newLISP
4634:Maclisp
4594:PC-LISP
4573:history
4559:Clojure
4522:(POP-1)
4502:UCBLogo
4492:NetLogo
4487:MSWLogo
4382:JScheme
4356:Chicken
4340:History
4271:(CMUCL)
4206:Flavors
4188:systems
3610:provide
3499:integer
3415:integer
3391:integer
3349:integer
3343:algol60
3309:balloon
3306:to-draw
3297:deflate
3294:on-tick
3285:blow-up
3234:deflate
3198:blow-up
3162:balloon
3144:require
3132:require
3042:douglas
2919:datalog
2904:Datalog
2798:Haskell
2736:string?
2509:_string
2473:require
2229:#:title
2141:-based
2074:button%
1859:button%
1830:), via
1824:Windows
1768:#:label
1486:require
1308:require
1154:require
1069:net/url
1066:require
1014:request
929:fprintf
863:require
797:handler
680:handler
573:pregexp
469:shebang
31:, both
5126:Scheme
4961:People
4848:(SICP)
4832:(HTDP)
4727:Genera
4722:McCLIM
4619:LeLisp
4585:EuLisp
4531:POP-11
4520:COWSEL
4450:ISLISP
4410:Racket
4377:Ikarus
4368:(GOAL)
4361:Gambit
4346:Bigloo
4331:Scheme
4317:(SBCL)
4310:Poplog
4306:Movitz
4255:(ABCL)
4238:Common
4197:(CLOS)
4186:Object
4142:Macros
4024:As of
3895:PLaneT
3803:define
3788:#lang
3762:racket
3625:racket
3604:racket
3601:#lang
3575:#lang
3565:#lang
3282:on-key
3228:define
3192:define
3174:circle
3156:define
3120:#lang
3048:parent
3030:parent
2982:parent
2943:parent
2900:Prolog
2821:define
2809:#lang
2733:filter
2706:define
2697:String
2685:Listof
2667:Number
2664:String
2640:#lang
2583:pdfTeX
2485:define
2461:#lang
2454:OpenGL
2435:libffi
2256:define
2169:#lang
2151:Beamer
2080:format
2029:secret
1972:define
1948:define
1927:define
1915:frame%
1903:define
1891:random
1885:secret
1882:define
1870:#lang
1855:frame%
1699:plot3d
1621:define
1612:))))))
1501:define
1474:racket
1471:#lang
1407:))))))
1398:beside
1383:freeze
1299:racket
1296:#lang
1241:getenv
1220:getenv
1145:racket
1142:#lang
1081:define
1057:racket
1054:#lang
1005:define
993:#lang
947:"
941:Bye...
935:"
875:define
857:racket
854:#lang
764:thread
674:define
650:define
644:racket
641:#lang
591:printf
522:#:when
495:#:args
486:racket
483:#lang
465:racket
406:unless
379:racket
376:#lang
360:"
351:printf
309:racket
306:#lang
299:regexp
276:Python
217:thread
148:define
142:racket
139:#lang
127:, and
89:Scheme
5260:Books
4933:(MIT)
4818:Books
4802:X3J13
4684:SKILL
4644:MLisp
4614:*Lisp
4568:Apple
4564:Dylan
4526:POP-2
4288:(GCL)
4282:(ECL)
4259:CLISP
4012:#%app
4001:>.
3937:(PDF)
3875:(PDF)
3791:s-exp
3712:hash?
3670:'
3634:#%app
3631:#%top
3514:SIGMA
3481:SIGMA
3454:until
3412:begin
3382:value
3355:SIGMA
3346:begin
3324:ALGOL
2916:#lang
2869:print
2830:list*
2724:apply
2694:->
2512:->
2419:LaTeX
2385:arrow
2283:scale
2238:apply
2226:slide
2214:roman
2211:'
2193:roman
2190:'
2178:slide
2139:Slide
1863:check
1844:Linux
1842:+ on
1836:macOS
1832:Cocoa
1389:above
1362:'
1359:solid
1356:'
1338:zero?
1256:'
1166:sleep
1132:)))))
1026:'
1011:start
982:start
887:'
818:)))))
662:12345
160:12345
5250:List
5164:Logo
4732:Scsh
4712:List
4479:Logo
4430:SIOD
4402:Pico
4387:Kawa
4302:Mocl
4240:Lisp
4040:GFDL
3568:plai
3448:step
3340:lang
3060:john
3036:john
2881:1000
2878:fibs
2860:))))
2857:fibs
2848:fibs
2824:fibs
2812:lazy
2802:fibs
2790:lazy
2788:The
2772:sqrt
2754:list
2541:and
2506:_fun
2412:))))
2361:disk
2298:add1
2205:text
2184:text
2160:and
2116:show
2110:send
2044:show
2038:send
2017:when
2008:cond
1792:plot
1756:-2.5
1741:-1.5
1489:plot
1418:plot
1416:The
1253:null
1250:null
1235:list
1099:let*
1044:))))
1038:body
1032:html
986:HTML
618:))))
615:line
582:line
561:when
448:line
433:line
418:line
363:path
342:path
330:when
291:path
272:Perl
103:and
5212:POP
4674:RPL
4654:NIL
4639:MDL
4624:LFE
4544:Arc
4512:POP
4425:SCM
3751:)))
3688:app
3658:top
3553:end
3493:end
3487:sum
3469:sum
3463:sum
3436:for
3424:sum
3418:sum
3315:200
3312:200
3246:max
3054:bob
2854:cdr
2842:map
2778:)))
2763:1/2
2748:tog
2742:)))
2712:tog
2679:tog
2515:)))
2388:100
2364:100
2337:100
2104:)))
2059:for
2050:)))
1990:evt
1987:btn
1957:new
1936:new
1912:new
1840:GTK
1834:on
1828:API
1820:GUI
1808:SVG
1802:),
1800:PDF
1796:PNG
1788:f3+
1753:2.5
1738:1.5
1711:f3+
1690:)))
1627:f3+
1597:sqr
1576:sqr
1555:sqr
1537:exp
1374:let
1365:red
1320:let
1090:str
962:)))
803:out
779:let
743:out
722:let
713:out
701:out
686:out
606:num
540:ext
516:for
504:ext
454:)))
445:saw
415:saw
397:for
388:let
366:)))
318:for
287:for
274:or
253:)))
250:out
238:out
193:out
169:let
5306::
4720:,
4599:Hy
4592:,
4570:,
3939:.
3887:^
3877:.
3815:))
3748:xs
3733:xs
3706:if
3697:xs
3646:))
3547:))
3484::=
3466::=
3460:do
3442::=
3427::=
3318:))
3276:50
3267:))
3222:))
3186:))
3063:).
3045:).
3027:).
2997:),
2979::-
2958:).
2940::-
2884:))
2775:-1
2700:))
2682:((
2670:))
2403:))
2397:pi
2340:50
2316:))
2310:))
2250:()
2220:))
2217:40
2196:56
2119:#t
2062:()
2047:#f
2011:))
1975:((
1963:))
1942:))
1918:))
1897:))
1774:))
1762:-1
1750:-1
1747:))
1624:((
1609:cz
1591:))
1588:cy
1570:))
1567:cx
1516:cz
1513:cy
1510:cx
1504:((
1377:()
1332:if
1326:()
1265:))
1247:))
1205:))
1202:60
1196:15
1187:60
1114:rx
944:\n
938:\n
902:()
893:))
827:))
800:in
791:()
782:()
773:()
758:))
740:in
728:()
716:))
698:in
683:in
665:))
576:re
507:re
475::
451:#t
436:))
421:#f
400:()
391:()
357:\n
321:()
278:.
265:))
235:in
226:()
208:))
190:in
175:()
163:))
119:,
107:.
63::
5097:)
5093:(
4576:)
4566:(
4435:T
4416:)
4412:(
4091:e
4084:t
4077:v
3987:.
3973:.
3958:.
3943:.
3921:.
3881:.
3848:)
3845:A
3842:h
3839:(
3833:)
3830:B
3827:A
3824:h
3818:(
3809:(
3806:h
3800:(
3745:.
3742:f
3739:(
3736:)
3730:.
3727:f
3721:(
3718:)
3715:f
3709:(
3703:(
3700:)
3694:.
3691:f
3685:(
3679:(
3676:)
3673:x
3667:)
3664:x
3661:.
3655:(
3649:(
3640:(
3637:)
3628:)
3619:(
3613:(
3607:(
3550:;
3544:7
3541:,
3538:q
3535:,
3532:1
3529:-
3526:2
3523:*
3520:q
3517:(
3511:(
3505:;
3502:q
3496:;
3490:;
3478:;
3475:x
3472:+
3457:n
3451:1
3445:1
3439:i
3433:;
3430:0
3421:;
3409:;
3406:n
3403:,
3400:i
3397:,
3394:x
3388:;
3385:n
3379:;
3376:)
3373:n
3370:,
3367:i
3364:,
3361:x
3358:(
3337:#
3303:(
3300:)
3291:(
3288:)
3279:(
3270:(
3264:1
3261:)
3258:1
3255:b
3252:-
3249:(
3243:(
3240:)
3237:b
3231:(
3225:(
3219:5
3216:b
3213:+
3210:(
3207:)
3204:k
3201:b
3195:(
3189:(
3177:b
3171:(
3168:)
3165:b
3159:(
3153:(
3150:)
3141:(
3138:)
3129:(
3084:?
3081:)
3078:B
3075:,
3072:A
3069:(
3057:,
3051:(
3039:,
3033:(
3024:B
3021:,
3018:D
3015:(
3009:,
3006:C
3003:=
3000:D
2994:C
2991:,
2988:A
2985:(
2976:)
2973:B
2970:,
2967:A
2964:(
2955:B
2952:,
2949:A
2946:(
2937:)
2934:B
2931:,
2928:A
2925:(
2872:(
2866:(
2851:(
2845:+
2839:(
2836:1
2833:1
2827:(
2818:(
2769:(
2757:5
2751:(
2745:(
2739:l
2730:(
2721:(
2718:)
2715:l
2709:(
2703:(
2691:)
2676::
2673:(
2661:U
2658:(
2649:(
2527:)
2518:(
2503:(
2491:(
2482:(
2479:)
2470:(
2439:C
2409:)
2400:6
2394:/
2391:(
2382:(
2376:(
2373:)
2367:)
2358:(
2352:(
2349:)
2343:)
2331:(
2325:(
2319:(
2313:c
2307:5
2304:)
2301:i
2295:(
2292:/
2289:(
2286:p
2280:(
2274:(
2271:)
2268:c
2265:p
2259:(
2253:(
2244:(
2235:(
2223:(
2202:(
2199:)
2181:(
2175:(
2122:)
2113:f
2107:(
2101:i
2095:(
2092:p
2089:)
2086:i
2077:(
2068:(
2056:(
2041:f
2035:(
2032:)
2026:i
2023:=
2020:(
2014:(
2005:(
1996:(
1993:)
1984:)
1981:i
1969:(
1954:(
1951:p
1945:(
1933:(
1930:t
1924:(
1909:(
1906:f
1900:(
1894:5
1888:(
1879:(
1765:1
1759:1
1744:0
1732:(
1729:)
1726:0
1723:0
1720:0
1714:(
1708:(
1702:(
1696:(
1687:z
1684:y
1681:x
1678:h
1675:(
1672:)
1669:z
1666:y
1663:x
1660:g
1657:(
1654:+
1651:(
1648:)
1645:z
1642:y
1639:x
1636:)
1633:h
1630:g
1618:(
1606:z
1603:-
1600:(
1594:(
1585:y
1582:-
1579:(
1573:(
1564:x
1561:-
1558:(
1552:(
1549:+
1546:(
1543:-
1540:(
1534:(
1531:)
1528:z
1525:y
1522:x
1519:)
1498:(
1492:)
1483:(
1453:R
1445:R
1437:R
1429:R
1404:t
1401:t
1395:(
1392:t
1386:(
1380:(
1371:(
1368:)
1353:2
1347:(
1344:)
1341:n
1335:(
1329:(
1317:(
1314:)
1305:(
1259:(
1238:(
1232:(
1226:)
1217:(
1211:(
1199:)
1193:)
1190:4
1184:*
1181:(
1178:-
1175:(
1172:*
1169:(
1163:(
1160:)
1151:(
1129:u
1123:(
1117:(
1108:(
1105:)
1102:(
1096:(
1093:)
1084:(
1078:(
1075:)
1063:(
1035:(
1029:(
1020:(
1017:)
1008:(
1002:(
959:o
953:(
950:)
932:o
926:(
923:)
917:(
914:)
911:(
905:(
896:(
881:(
878:e
872:(
869:)
860:(
821:(
815:c
809:(
806:)
794:(
785:(
776:(
770:λ
767:(
761:(
749:(
746:)
737:(
731:(
719:(
707:(
704:)
692:(
689:)
677:(
671:(
656:(
647:(
612:)
609:1
603:+
600:(
597:p
588:(
585:)
579:)
570:(
564:(
558:(
555:)
552:)
549:p
546:)
531:(
525:(
519:(
513:(
510:)
498:(
489:(
439:(
427:(
424:)
409:(
403:(
394:(
385:(
348:(
345:)
333:(
327:(
315:(
259:(
244:(
241:)
229:(
223:λ
220:(
214:(
199:(
196:)
187:(
181:(
166:(
154:(
145:(
83:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.