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. opencv7-ml之KNN

    准备知识 在文件"opencv\sources\modules\ml\src\precomp.hpp"中 有cvPrepareTrainData的函数原型. int cvPrepa ...

  2. Windows安装mapnik

    windows安装mapnik,首先去官网下载windows压缩包:http://mapnik.org/,解压位置C:\mapnik-v2.2.0 然后下载安装python2.7,安装位置  C:\P ...

  3. 20155313 杨瀚 《网络对抗技术》实验一 PC平台逆向破解(5)M

    exp1 PC平台逆向破解(5)M 一.实验内容 1.手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. 2.利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发 ...

  4. python 回溯法 子集树模板 系列 —— 2、迷宫问题

    问题 给定一个迷宫,入口已知.问是否有路径从入口到出口,若有则输出一条这样的路径.注意移动可以从上.下.左.右.上左.上右.下左.下右八个方向进行.迷宫输入0表示可走,输入1表示墙.为方便起见,用1将 ...

  5. python装饰器 练习

    用类作为装饰器 练习一 最初代码 class bol(object): def __init__(self, func): self.func = func def __call__(self): r ...

  6. iOSPush自动隐藏tabbar

    只需要在UITabBarController添加控制器的时候调用YZNav初始化,就可以实现tabbar的自动隐藏了. 直接上github地址:https://github.com/YouZhiZhe ...

  7. CommandoVM-虚拟机映像文件 | VM打开直接用

    呵呵!自从火眼发布了这个CommandoVM,想必大家应该都挺激动,然而实际操作一下,基本炸裂-- 因为并没有给类似于kali这种直接安装的现成镜像,而是要通过github的脚本去完全网络安装 实际操 ...

  8. linux下SpringBoot Jar包自启脚本配置

    今天整理服务器上SpringBoot项目发现是自启的,于是想看看实现.翻看离职同事的交接文档发现一个***.service文件内容如下 [Unit] Description=sgfront After ...

  9. leetcode刷题笔记258 各位相加

    题目描述: 给一个非负整数 num,反复添加所有的数字,直到结果只有一个数字. 例如: 设定 num = 38,过程就像: 3 + 8 = 11, 1 + 1 = 2. 由于 2 只有1个数字,所以返 ...

  10. yocto-sumo源码解析(二): oe-buildenv-internal

    1 首先,脚本先对运行方式进行了检测: if ! $(return >/dev/null 2>&1) ; then echo 'oe-buildenv-internal: erro ...