====== Racket Notes == The [[https://docs.racket-lang.org/reference/|Racket Reference]] has more details than this here page. I took these notes regarding Racket as a memory aid to help me get started with Racket. Racket identifiers can contain any characters except for whitespace and the following special characters: '''( ) [ ] { } " , ' ` ; # | \'''. A special case is ''#'' which is allowed at the beginning of a symbol. ===== Data Structures == Linked lists are favored in racket. Each element of the list can be a "pair" created by the ''cons'' function. The first element of the pair is the current value and the second element of the pair is a pointer to the next pair or ''null''. In Racket, ''null'' is an empty list, which is a singleton. ===== Common Constants == ==== #t == The boolean true value. ==== #f == The boolean false value. ==== null == The empty list. ===== Racket Functions == ==== cons == Creates a newly allocated pair. (cons ) ==== car == Returns the first value of a pair created with ''cons''. (car ) ==== cdr == Returns the second value of a pair created with ''cons''. (cdr ) ==== cond == It's somewhat like a switch statement in other languages: (cond ( ) ( )... ()) ==== string-append == Appends strings. Arguments *must* be strings already. (string-append ...) ==== number->string == Converts a number to a string. (number->string ) ==== list == Constructs a linked list from the specified arguments. (list ...) Note that the value returned is a pair containing the value of the first argument and pointer to the next pair in the list.