Racket Cheat Sheet

来源  http://docs.racket-lang.org/racket-cheat/index.html?q=Racket%20Cheat%20Sheet

Essentials

Sites main download docs git
Community packages users@ dev@ irc slack twitter
Running Put #lang racket "Hello, world!" in hello.rkt and run racket hello.rkt
Primitives

Numbers

Literals integer 1 rational  1/2  complex 1+2ifloating 3.14 double 6.02e+23 hex #x29 octal #o32 binary #b010101
Arithmetic + - * / quotient remaindermodulo add1 sub1 max min roundfloor ceiling sqrt expt exp logsin ... atan
Compare = < <= > >=
Bitwise bitwise-ior bitwise-andbitwise-xor bitwise-notarithmetic-shift integer-length
Format number->string string->numberreal->decimal-string
Test number? complex? ... exact-nonnegative-integer? ... zero?positive? negative? even? odd?exact? inexact?
Misc random
Match Pattern (? number? n) 42

Strings

Literals "Racket" quoting "a \" approaches!"unicode "λx:(μα.α→α).xx"
Create make-string string string-appendbuild-string string-join
Observe string-length string-refsubstring string-split in-string
Modify string-downcase string-upcasestring-trim
Test string? string=? string<=?string-ci<=?
Regexp #rx"a|b" #rx"^c(a|d)+r$" regexp-quote regexp-match regexp-splitregexp-replace regexp-replace*
Match Pattern (? string? s) "Banana?"
Data

Lists

Create empty list list* build-listfor/list
Observe empty? list? pair? length list-ref member count argmin argmax
Use append reverse map andmap ormapfoldr in-list
Modify filter remove ... sort take dropsplit-at partition remove-duplicates shuffle
Match Pattern (list a b c) (list* a b more)(list top more ...)

Vector

Create build-vector vector make-vectorlist->vector
Observe vector? vector-length vector-refin-vector
Modify vector-set! vector-fill! vector-copy! vector-map!
Match Pattern (vector x y z) (vector x ycalabi–yau ...)
Systems

Syntax (Beginner)

Basics

Modules (module+ main body ...) 
(module+ test body ...) 
(require mod-path) (provideid)
S-expressions quote '(a b c) quasiquoteunquote `(1 2 ,(+ 1 2))
Procedure Applications (fn arg1 arg2) 
keyword args (fn arg1 #:keyarg2) 
(apply fn arg1 (list arg2))
Procedures (lambda (x) x) (λ (x) x) 
(λ (x [opt 1]) (+ x opt)) 
(λ (x #:req key) (+ x key)) 
(λ (x #:opt [key 1]) (+ xkey))
Binding (let ([x 1] [y 2]) (+ x y)) 
(let* ([x 1] [x (+ x 1)]) x)
Conditionals (if (zero? x) 0 (/ 1 x)) 
(cond [(even? x) 0] [(odd? x)1] 
      [else "impossible!"]) 
and or
Definitions (define x 1) 
(define (f y) (+ x y))
Iteration for for/list for*
Blocks begin when unless
Require Sub-forms prefix-in only-in except-inrename-in for-syntax for-label ...
Provide Sub-forms all-defined-out all-from-outrename-out ... contract-out

Structures

Definition (struct dillo (weight color))
Create (define danny (dillo 17.5'purple))
Observe (dillo? danny) (dillo-weightdanny) (dillo-color danny)
Modify (struct-copy dillo danny([weight 18.0]))
Match Pattern (dillo w c)

Pattern Matching

Basics (match value [pat body] ...)
Definitions (match-define pat value)
Patterns (quote datum) (list lvp ...)(list-no-order pat ...) (vectorlvp ...) (struct-id pat ...)(regexp rx-expr pat) (or pat...) (and pat ...) (? expr pat...)
Syntax (Intermediate)

Structures

Sub-structures (struct 2d (x y)) (struct 3d2d (z)) (2d-x (3d 1 2 3))
Mutation (struct monster (type [hp#:mutable])) (define healie(monster 'slime 10)) (set-monster-hp! healie 0)
Transparency (struct cash ($ ¢)#:transparent) (struct->vector (cash 5 95))
Printing (struct nickname [n v]#:methods gen:custom-write[(define (write-proc nn pmode) (fprintf p (nickname-nnn)))]) (displayln (nickname"evens" (in-range 0 100 2)))
Serialization (struct txn (who what where)#:prefab) (write (txn"Mustard" "Spatula""Observatory"))

Generics

Definition define-generics
Instantiation (struct even-set () #:methodsgen:set [(define (set-member?st i) (even? i))])
Tools

Packages

Inspection raco pkg show
Finding pkgs.racket-lang.org
Installing raco pkg install
Updating raco pkg update
Removing raco pkg remove

Miscellaneous

Compiling raco make program.rkt
Testing raco test program.rkt a-directory
Building Executables raco exe program.rkt
Extending DrRacket drracket:language:simple-module-based-language->module-based-language-mixin
Slides slide standard-fish code

================= End

Racket Cheat Sheet的更多相关文章

  1. 转:PostgreSQL Cheat Sheet

    PostgreSQL Cheat Sheet CREATE DATABASE CREATE DATABASE dbName; CREATE TABLE (with auto numbering int ...

  2. Git Cheat Sheet

    Merge Undo git merge with conflicts $ git merge --abort Archive $ git archive --format zip --output ...

  3. CSS3 Animation Cheat Sheet:实用的 CSS3 动画库

    CSS3 Animation Cheat Sheet 是一组预设的动画库,为您的 Web 项目添加各种很炫的动画.所有你需要做的是添加样式表到你的网站,为你想要添加动画效果的元素应用预制的 CSS 类 ...

  4. XSS (Cross Site Scripting) Prevention Cheat Sheet(XSS防护检查单)

    本文是 XSS防御检查单的翻译版本 https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sh ...

  5. IOS Application Security Testing Cheat Sheet

    IOS Application Security Testing Cheat Sheet    [hide]  1 DRAFT CHEAT SHEET - WORK IN PROGRESS 2 Int ...

  6. XSS Filter Evasion Cheat Sheet 中文版

    前言 译者注: 翻译本文的最初原因是当我自己看到这篇文章后,觉得它是非常有价值.但是这么著名的一个备忘录却一直没有人把它翻译成中文版.很多人仅仅是简单的把文中的 各种代码复制下来,然后看起来很刁的发在 ...

  7. HTML5 Cheat sheet PNG帮助手册(标签、事件、兼容)

    HTML5 Cheat sheet PNG帮助手册(标签.事件.兼容) 1.HTML5标签 2.HTML5事件 3.HTML5兼容 最新HTML5手册资料请参考:http://www.inmotion ...

  8. [转]Swift Cheat Sheet

    原文:http://kpbp.github.io/swiftcheatsheet/ A quick cheat sheet and reference guide for Apple's Swift ...

  9. The iOS Design Cheat Sheet 界面设计速参

    http://ivomynttinen.com/blog/the-ios-7-design-cheat-sheet/ With the release of iOS 7, app designers ...

随机推荐

  1. 一,ESP8266下载和刷固件(基于Lua脚本语言)

    用自己的小板测试...... 安排上呢 一, ESP8266下载和刷固件(Lua开发----体验一下lua开发的魅力所在) 二, 控制一个灯亮灭 三, TCP服务器 四, TCP客户端 五, UDP ...

  2. Hadoop体系结构杂谈

    hadoop体系结构杂谈 今天跟一个朋友在讨论hadoop体系架构,从当下流行的Hadoop+HDFS+MapReduce+Hbase+Pig+Hive+Spark+Storm开始一直讲到HDFS的底 ...

  3. C# show FTP Download/Upload progress

    https://stackoverflow.com/questions/4591059/download-file-from-ftp-with-progress-totalbytestoreceive ...

  4. 不成功的RMAN恢复到其他机器的例子

    事实上,RMAN备份的时候,如果是使用control file 来作catalog,那么一定要把control file和spfile恢复到另外的机器上面. 否则,会出现类似如下的错误: 原来的实例: ...

  5. Qt FFMPEG+OpenCV开启摄像头

    //ffmpegDecode.h #ifndef __FFMPEG_DECODE_H__ #define __FFMPEG_DECODE_H__ #include "global.h&quo ...

  6. NodeJS旅程 : express - nodejs MVC 中的王牌

    express 正如ASP.NET MVC 在作为.net平台下最佳的 Mvc框架的地位一样,express在 node.js 环境也有着相同的重要性.在百度上 "nodejs expres ...

  7. Express入门介绍vs实例讲解

    下午在团队内部分享了express相关介绍,以及基于express的实例.内容提纲如下. 什么是Express 为什么要用Express 路由规则 一切皆中间件 实例:Combo Applicatio ...

  8. python 连接 hive 的 HiveServer2 的配置坑

    环境: hadoop 2.7.6 hive 2.3.4 Hive 的 thirft 启动: hadoop 单机或者集群需要: 启动 webhdfs 修改 hadoop 的代理用户 <proper ...

  9. Salesforce随笔: 将Visualforce Page渲染为PDF文件(Render a Visualforce Page as a PDF File)

    参照 : Visualforce Developer Guide 第60页 <Render a Visualforce Page as a PDF File> 你可以用PDF渲染服务生成一 ...

  10. Frida----安装

    介绍 它是本机应用程序的 Greasemonkey,或者更多技术术语,它是一个动态代码检测工具包.它允许您将JavaScript或您自己的库的片段注入Windows,macOS,GNU / Linux ...