This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
software:racket:functions [2018/09/22 17:15] dave |
software:racket:functions [2018/09/22 18:23] (current) dave [list] |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== 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 == | ===== Racket Functions == | ||
- | ==== 'cond' == | + | ==== cons == |
+ | |||
+ | Creates a newly allocated pair. | ||
+ | |||
+ | <code> | ||
+ | (cons <first-value> <second-value>) | ||
+ | </code> | ||
+ | |||
+ | ==== car == | ||
+ | |||
+ | Returns the first value of a pair created with ''cons''. | ||
+ | |||
+ | <code> | ||
+ | (car <pair-created-by-cons>) | ||
+ | </code> | ||
+ | |||
+ | ==== cdr == | ||
+ | |||
+ | Returns the second value of a pair created with ''cons''. | ||
+ | |||
+ | <code> | ||
+ | (cdr <par-created-by-cons>) | ||
+ | </code> | ||
+ | |||
+ | ==== cond == | ||
+ | |||
+ | It's somewhat like a switch statement in other languages: | ||
+ | |||
+ | <code> | ||
+ | (cond | ||
+ | (<condition> <value-if-true>) | ||
+ | (<condition> <value-if-true>)... | ||
+ | (<value if false>)) | ||
+ | </code> | ||
+ | |||
+ | ==== string-append == | ||
+ | |||
+ | Appends strings. Arguments *must* be strings already. | ||
+ | |||
+ | <code> | ||
+ | (string-append <str1> <strN>...) | ||
+ | </code> | ||
+ | |||
+ | ==== number->string == | ||
+ | |||
+ | Converts a number to a string. | ||
+ | |||
+ | <code> | ||
+ | (number->string <number>) | ||
+ | </code> | ||
+ | |||
+ | ==== list == | ||
+ | |||
+ | Constructs a linked list from the specified arguments. | ||
+ | |||
+ | <code> | ||
+ | (list <arg1> <argN>...) | ||
+ | </code> | ||
+ | |||
+ | Note that the value returned is a pair containing the value of the first argument and pointer to the next pair in the list. |