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