Racket Cheatsheet
Sample program
#lang racket/base
(print "Hello, World!")
#lang: to define the language you are usingprint: To display the output in the console;: To comment a single line;;: To mark important comments#;: To comment the following s-expression
Data types
| Datatype | Description |
|---|---|
| Numbers | represents integers, float and complex numbers |
| Boolean | #t and #f are the two boolean literals |
| Strings | To represent sequence of characters, double quotes("") are used to represent strings |
Variables
Both let and define can be used to define variables.
(let ([id value-expression] ...) body ...+)
(let proc-id ([id init-expression] ...) body ...+)
define id expression
Example
(let ([x 10]) x)
Lists
(list values)
Example
(list 1 2 3 4 5)
| List Functions | Usage | Description |
|---|---|---|
| length | (length (list 1 2 3 4 5)) | returns length of the list |
| list-ref | (list-ref (list "a" "b" "c") 0) | returns list item at an index |
| append | (append (list "a" "b") (list "c")) | to append two lists |
| reverse | (reverse (list "a" "b" "c")) | to reverse a list |
| member | (member "g" (list "a" "b" "c")) | checks if an element is present in a list |
Conditional statements
1. If
(if cond-expr then-expr)
2. If-else
(if cond-expr then-expr else-expr)
Loops
1. For
(for (for-clause ...) body-or-break ... body)
where
for-clause = [id seq-expr] | [(id ...) seq-expr] | #:when guard-expr | #:unless guard-expr | break-clause
body-or-break= body | break-clause
Functions
(def fn functionName args body ...+)
Example
#lang racket/base
(define (square y) (* y y))
(square 5)
Procedures
(lambda (argument-id ...)
body ...+)