racket球拍入门


备注

本节概述了球拍的内容以及开发人员可能想要使用它的原因。

它还应该提到球拍内的任何大型主题,并链接到相关主题。由于球拍文档是新的,您可能需要创建这些相关主题的初始版本。

版本

文档发布日期
每晚构建 最新文档 2999年12月31日
版本6.9 文档 2017年4月1日
版本6.8 文档 2017年1月1日
版本6.7 文档 2016年10月1日
版本6.6 文档 2016年7月1日
版本6.5 文档 2016年4月1日
版本6.4 文档 2016年2月1日
版本6.3 文档 2015年11月1日
版本6.2.1 文档 2015年8月1日
版本6.2 文档 2015年6月1日
版本6.1.1 文档 2014年11月1日
版本6.1 文档 2014-08-01
版本6.0.1 文档 2014-05-01
版本6.0 文档 2014年2月1日
版本5.93 文档 2014年1月1日
版本5.92 文档 2014年1月1日
版本5.3.6 文档 2013年8月1日
版本5.3.5 文档 2013年6月1日
版本5.3.4 文档 2013年5月1日
版本5.3.3 文档 2013年2月1日
版本5.3.2 文档 2013年2月1日
版本5.3.1 文档 2012-11-01
版本5.3 文档 2012-08-01
版本5.2.1 文档 2012-03-01
版本5.2 文档 2011-11-01
版本5.1.3 文档 2011-08-01
版本5.1.2 文档 2011-08-01
版本5.1.1 文档 2011-04-01
版本5.1 文档 2011-02-01
版本5.0.2 文档 2010-11-01
版本5.0.1 文档 2010-08-01
5.0版 文档 2010-06-01

在所有子目录中查找球拍源

#lang racket 
(for ([path (in-directory)]
  #:when (regexp-match? #rx"[.]rkt$" path))
  (printf "source file: ~a\n" path))
 

#lang 行指定此文件的编程语言。 #lang racket 我们正在使用基准的,包含电池的Racket编程语言。其他语言来自Racket风格,如Type Racket( #lang typed/racket )或文档语言Scribble( #lang scribble ),以及小便利语言,如用于定义包的语言( #lang info )。

in-directory 函数构造一个遍历目录树的序列(默认情况下从当前目录开始)并在树中生成路径。该for 形式结合path 到序列中的每个路径,和regexp-match? 将模式应用于路径。

要运行该示例,请安装Racket,启动DrRacket,将示例程序粘贴到DrRacket的顶部区域,然后单击“运行”按钮。或者,将程序保存到文件并从文件的命令行运行racket

你好,世界!

下面的示例声明要在Racket中编写的一段代码,然后打印字符串Hello, world

#lang racket
"Hello, world!"
 

Racket代码可以直接从命令行运行,也可以在DrRacket IDE上运行。在命令行上键入racket 将启动REPL,键入racket 后跟文件名将评估文件的内容。例如,假设文件hello.rkt 包含上面的代码。以下是在命令行上运行Racket的示例。

$ racket
Welcome to Racket v6.5.
> "Hello, world!"
"Hello, world!"
> (exit)
$ racket hello.rkt
"Hello, world!"
 

安装或设置

安装非常简单。如果您已经习惯了这种事情,请访问https://download.racket-lang.org 。如果您愿意,可以为以下系统提供更详细的逐步安装说明:

球拍

Racket是一种全谱编程语言。它超越了Lisp和Scheme,支持对象,类型,懒惰等方言。 Racket使程序员能够链接用不同方言编写的组件,并使程序员能够创建新的,项目特定的方言。 Racket的库支持从Web服务器和数据库到GUI和图表的应用程序。

可以在[ http://docs.racket-lang.org/][1]找到官方,全面和编写良好的文档。在此站点(Stack Overflow Documentation),您可以找到用户提供的示例。

安装

转到http://racket-lang.org并单击下载按钮。

简单递归函数定义

在Racket中,我们经常使用递归。下面是一个函数示例,它将从零到参数n 所有数字相加。

(define (sum n)
    (if (zero? n)
        0
        (+ n (sum (sub1 n)))))
 

请注意,这里使用了许多有用的基于便利的功能,例如zero?sub1 。每个都分别做到了你所期望的: zero? 返回一个布尔值,表示给定的数字是否等于零,而sub1 从其参数中减去一个。