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. C#可空类型(转载)

    在程序开发中,有时候需要值类型也为可空类型,比如,在数据库中,我们可以把一个日期Datetime设置为null. 在C# 2.0中就出现了可空类型,允许值类型也可以为空(null),可空类型的实现基于 ...

  2. 领域驱动设计理解&总结

    领域驱动设计理解&总结 这篇文章主要是通读<实现领域驱动设计>之后自己的理解和总结(同时也参照一些博文的分析来加深自己的理解): 有些疑问是自定义内容,虽然有自己的理解,但依然感觉 ...

  3. 20155207 EXP6 信息搜集与漏洞扫描

    20155207 EXP6 信息搜集与漏洞扫描 基础问题回答 1)哪些组织负责DNS,IP的管理. ICANN统一管理全球根服务器 全球根域名服务器(13台) 地区性注册机构(5个)ARIN RIPE ...

  4. VS编程,WPF中,获取鼠标相对于当前屏幕坐标的一种方法

    原文:VS编程,WPF中,获取鼠标相对于当前屏幕坐标的一种方法 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/article/det ...

  5. mfc CTabCtrl

    知识点: CTabCtrl常用属性 CTabCtrl类常用成员函数 CTabCtrl代码示例 一.CTabCtrl控件属性 Bottom:底部样式 Vertical:垂直样式 与Bottom结合使用, ...

  6. WinDbg命令三部曲

    WinDbg 命令三部曲:(一)WinDbg 命令手册 WinDbg 命令三部曲:(二)WinDbg SOS 扩展命令手册 WinDbg 命令三部曲:(三)WinDbg SOSEX 扩展命令手册

  7. shell脚本之基础

    配置启动界面 vim /etc/inittab/  init3配置网卡 重启生效system-config-network网卡配置文件vim /etc/sysconfig/network-script ...

  8. Intellij IDEA 2017 debug断点调试技巧与总结详解篇

    转载自csdn----------------------------------------------------------------------https://blog.csdn.net/q ...

  9. unity物理检测的几种方式

    (由于本人大多做2d游戏,因此以下以2d为主介绍,但是具体和3d相差不大) 在unity中有很多不同的物理检测方式,但是大致可以分为以下几种: 1.Physics2d检测系列 Physics2d.Li ...

  10. 在WebGL场景中建立游戏规则

    在前三篇文章的基础上,为基于Babylon.js的WebGL场景添加了类似战棋游戏的基本操作流程,包括从手中选择单位放入棋盘.显示单位具有的技能.选择技能.不同单位通过技能进行交互.处理交互结果以及进 ...