diff options
Diffstat (limited to 'racket.html.markdown')
| -rw-r--r-- | racket.html.markdown | 33 | 
1 files changed, 20 insertions, 13 deletions
| diff --git a/racket.html.markdown b/racket.html.markdown index 96dcaf25..60a895e0 100644 --- a/racket.html.markdown +++ b/racket.html.markdown @@ -147,8 +147,8 @@ my-pet ; => #<dog>  (struct rgba-color (red green blue alpha) #:mutable)  (define burgundy     (rgba-color 144 0 32 1.0)) -(set-color-green! burgundy 10) -(color-green burgundy) ; => 10 +(set-rgba-color-green! burgundy 10) +(rgba-color-green burgundy) ; => 10  ;;; Pairs (immutable)  ;; `cons' constructs pairs, `car' and `cdr' extract the first @@ -164,10 +164,17 @@ my-pet ; => #<dog>  (cons 1 (cons 2 (cons 3 null))) ; => '(1 2 3)  ;; `list' is a convenience variadic constructor for lists  (list 1 2 3) ; => '(1 2 3) -;; and a quote can also be used for a literal list value +;; a quote can also be used for a literal list value  '(1 2 3) ; => '(1 2 3) +;; a quasiquote (represented by the backtick character) with commas  +;; can be used to evaluate functions +`(1 ,(+ 1 1) 3) ; => '(1 2 3) -;; Racket has predefined functions on top of car and cdr, to extract parts of a list +;; With lists, car/cdr work slightly differently +(car '(1 2 3)) ; => 1 +(cdr '(1 2 3)) ; => '(2 3) + +;; Racket also has predefined functions on top of car and cdr, to extract parts of a list  (cadr (list 1 2 3)) ; => 2  (car (cdr (list 1 2 3))) ; => 2 @@ -242,7 +249,7 @@ m ; => '#hash((b . 2) (a . 1) (c . 3))  <-- no `d'  (hash-remove m 'a) ; => '#hash((b . 2) (c . 3))  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; 3. Functions +;; 4. Functions  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  ;; Use `lambda' to create functions. @@ -312,7 +319,7 @@ m ; => '#hash((b . 2) (a . 1) (c . 3))  <-- no `d'                                           ; => "Hi Finn, 6 extra args"  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; 4. Equality +;; 5. Equality  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  ;; for numbers use `=' @@ -362,7 +369,7 @@ m ; => '#hash((b . 2) (a . 1) (c . 3))  <-- no `d'  (equal? (list 3) (list 3))                                       ; => #t  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; 5. Control Flow +;; 6. Control Flow  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  ;;; Conditionals @@ -498,7 +505,7 @@ m ; => '#hash((b . 2) (a . 1) (c . 3))  <-- no `d'    (+ 1 (raise 2))) ; => 2  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; 6. Mutation +;; 7. Mutation  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  ;; Use `set!' to assign a new value to an existing variable @@ -534,7 +541,7 @@ vec ; => #(1 2 3 4)  (hash-remove! m3 'a)  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; 7. Modules +;; 8. Modules  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  ;; Modules let you organize code into multiple files and reusable @@ -561,7 +568,7 @@ vec ; => #(1 2 3 4)  ; (show "~a" 1 #\A) ; => error, `show' was not exported  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; 8. Classes and Objects +;; 9. Classes and Objects  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  ;; Create a class fish% (-% is idiomatic for class bindings) @@ -602,7 +609,7 @@ vec ; => #(1 2 3 4)  (send (new (add-color fish%) [size 10] [color 'red]) get-color)  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; 9. Macros +;; 10. Macros  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  ;; Macros let you extend the syntax of the language @@ -644,7 +651,7 @@ vec ; => #(1 2 3 4)  ;; it, the compiler will get in an infinite loop  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; 10. Contracts +;; 11. Contracts  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  ;; Contracts impose constraints on values exported from modules @@ -671,7 +678,7 @@ vec ; => #(1 2 3 4)  ;; more details....  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; 11. Input & output +;; 12. Input & output  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  ;; Racket has this concept of "port", which is very similar to file | 
