====== 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.