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 18:12] dave |
software:racket:functions [2018/09/22 18:23] (current) dave [list] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ===== Racket Notes == | + | ====== 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''. | 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''. | ||
| Line 6: | Line 13: | ||
| - | ==== Racket Functions == | + | ===== Common Constants == |
| - | === cons == | + | ==== #t == |
| + | |||
| + | The boolean true value. | ||
| + | |||
| + | ==== #f == | ||
| + | |||
| + | The boolean false value. | ||
| + | |||
| + | ==== null == | ||
| + | |||
| + | The empty list. | ||
| + | |||
| + | ===== Racket Functions == | ||
| + | |||
| + | ==== cons == | ||
| Creates a newly allocated pair. | Creates a newly allocated pair. | ||
| Line 16: | Line 37: | ||
| </code> | </code> | ||
| - | === car == | + | ==== car == |
| Returns the first value of a pair created with ''cons''. | Returns the first value of a pair created with ''cons''. | ||
| Line 24: | Line 45: | ||
| </code> | </code> | ||
| - | === cdr == | + | ==== cdr == |
| Returns the second value of a pair created with ''cons''. | Returns the second value of a pair created with ''cons''. | ||
| Line 32: | Line 53: | ||
| </code> | </code> | ||
| - | === cond == | + | ==== cond == |
| It's somewhat like a switch statement in other languages: | It's somewhat like a switch statement in other languages: | ||
| Line 43: | Line 64: | ||
| </code> | </code> | ||
| - | === string-append == | + | ==== string-append == |
| Appends strings. Arguments *must* be strings already. | Appends strings. Arguments *must* be strings already. | ||
| Line 51: | Line 72: | ||
| </code> | </code> | ||
| - | === number->string == | + | ==== number->string == |
| Converts a number to a string. | Converts a number to a string. | ||
| Line 58: | Line 79: | ||
| (number->string <number>) | (number->string <number>) | ||
| </code> | </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. | ||