文档 下载
  • Racket 学园 2018 现在开始接受申请,为期五日的紧张课程将交给您如何用 Racket 来创建编程语言。课程将于七月 9 日至 13 日在盐湖城举行。我们会为适格的学生提供财务支持。快来加入我们!

  • 功能齐备

    Racket 丰富的标准库能够让您的项目快速建立。

  • 跨平台

    Racket 可在 Linux、macOS 和 Windows 上运行。一次开发,三系统部署。

  • 强大的宏和语言

    Racket 的瑰宝是它的宏系统,它能让您自由地扩展语言。

  • 成熟,稳定,开源

    Racket 是一个成熟的 LGPL 项目,它的开发和维护十分活跃。

  • DrRacket IDE 和丰富的文档

    DrRacket 是一个集成了 Racket 丰富文档的图形化 IDE。

  • 最好的 Scheme 和 Lisp

    Racket 诞生自一个 Scheme 实现,然而后来发展出了新的领域。

  • Racket 是一种通用的编程语言,同时还是世界上第一个用于开发和部署新语言的生态系统。创造您梦想中的语言,或使用已有的多种语言,例如:

  • #lang racket[点击展开]
    (require 2htdp/image) ; 画图
    (let sierpinski ([n 8])
    (cond
    [(zero? n) (triangle 2 'solid 'red)]
    [else (define t (sierpinski (- n 1)))
    (freeze (above t (beside t t)))]))

    2htdp/image 库为创建图像提供了十分方便的函数。

    Racket 教程 →

  • #lang scribble/base[点击展开]
    @; 生成 PDF 或 HTML 文档
    @title{Bottles: @italic{Abridged}}
    @(apply
    itemlist
    (for/list ([n (in-range 100 0 -1)])
    @item{@(format "~a" n) bottles.}))

    scribble/base 语言使用对编写者友好的语法来生成文档。

    Scribble 教程 →

  • #lang typed/racket[点击展开]
    ;; Using higher-order occurrence typing
    (define-type SrN (U String Number))
    (: tog ((Listof SrN) -> String))
    (define (tog l)
    (apply string-append (filter string? l)))
    (tog (list 5 "hello " 1/2 "world" (sqrt -1)))

    Typed Racket 的「渐进式」定型能让您先用无类型模式完成工作,然后再添加类型。

    Typed Racket 教程 →

  • #lang datalog[点击展开]
    ancestor(A, B) :- parent(A, B).
    ancestor(A, B) :-
    parent(A, C), ancestor(C, B).
    parent(john, douglas).
    parent(bob, john).
    ancestor(A, B)?

    您可以用 Racket 来构建其它语言 — 例如 datalog,它是一个逻辑式编程语言。

    Datalog 教程 →

  • #lang racket/gui[点击展开]
    (define f (new frame% [label "猜数字"]))
    (define n (random 5)) (send f show #t)
    (define ((check i) btn evt)
    (message-box "." (if (= i n) "正确" "错误")))
    (for ([i (in-range 5)])
    (make-object button% (~a i) f (check i)))

    Racket 的 GUI 语言和库让跨平台应用的创建更加容易。

    GUI 教程 →

  • #lang web-server/insta[点击展开]
    ;; 一个 "hello world" Web 服务器
    (define (start request)
    (response/xexpr
    '(html
    (head (title "Racket"))
    (body "Hello 世界"))))

    web-server/insta 语言能让您快速创建服务端 Web 应用的原型。

    Web 应用教程 →

  • 软件
  • 下载 Racket v6.12

  • 源代码

  • 问题报告

  • 每日构建快照

  • 文档与教程
  • 快速入门

  • 系统编程

  • Racket 指南

  • Racket 参考手册

  • Web 应用

  • 所有文档

  • 新闻
  • Racket 6.12 发布。

  • (第八届 RacketCon) 将于 2018 年 9 月 29 日至 30 日在圣路易斯举行。

  • 新到!Racket T 恤衫 — 认识朋友、影响他人、保持友好的完美方式。

  • 新到!Racket 贴纸 — 笔记本电脑和教科书上必不可少的装饰。

  • 社区
  • 邮件列表

  • 博客

  • freenode.net 上的 #racket IRC

  • Slack 频道(请访问此处注册)

  • Twitter 上的 @racketlang

  • PLT:Racket 背后的团队

  • 书籍
  • Racket 王国
    一次一个游戏,学习用 Racket 来编程。

  • 美丽的 Racket
    用 Racket 创造您自己的编程语言

  • 服务器:Racket
    用 Racket 开发 Web 程序。

  • 所有 Racket 书籍

  • 教育
  • 程序设计方法
    一种原则化的编程方法。

  • 程序设计
    一个训练教师使用程序设计方法来授课的工作室。

  • 起步
    一门适合中学生的课程。

  • 鸣谢
  • 感谢自然科学基金会美国国防部高级研究计划局美国教育部高等教育改进基金埃克森美孚基金会、CORD、美国信息技术学院的合作伙伴们、微软谋智以及谷歌多年来的慷慨支持。