diff options
| author | Suzane Sant Ana <tetestonaldo@gmail.com> | 2017-12-31 14:27:06 -0200 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-12-31 14:27:06 -0200 | 
| commit | 42f9329bb3a028d374d6397991ac48b44064741e (patch) | |
| tree | 1e75e2b3e122aeb863e3ffa037f6f64c4027fbf8 /common-lisp.html.markdown | |
| parent | e6b77595f2669d66ac7be43c6e6083cbff80a9a7 (diff) | |
| parent | 70a36c9bd970b928adde06afb2bd69f6ba8e5d5c (diff) | |
Merge pull request #1 from adambard/master
update
Diffstat (limited to 'common-lisp.html.markdown')
| -rw-r--r-- | common-lisp.html.markdown | 26 | 
1 files changed, 18 insertions, 8 deletions
| diff --git a/common-lisp.html.markdown b/common-lisp.html.markdown index c4ecb5e8..9a23bc26 100644 --- a/common-lisp.html.markdown +++ b/common-lisp.html.markdown @@ -175,7 +175,8 @@ nil                  ; for false - and the empty list                :age 5))  *rover* ; => #S(DOG :NAME "rover" :BREED "collie" :AGE 5) -(dog-p *rover*) ; => t  ;; ewww) +(dog-p *rover*) ; => true  #| -p signifies "predicate". It's used to +                              check if *rover* is an instance of dog. |#  (dog-name *rover*) ; => "rover"  ;; Dog-p, make-dog, and dog-name are all created by defstruct! @@ -260,7 +261,7 @@ nil                  ; for false - and the empty list  (defparameter *adjvec* (make-array '(3) :initial-contents '(1 2 3)        :adjustable t :fill-pointer t)) -       +  *adjvec* ; => #(1 2 3)  ;; Adding new element: @@ -338,7 +339,7 @@ nil                  ; for false - and the empty list  ;; The () in the above is the list of arguments for the function  (defun hello (name) -   (format nil "Hello, ~a " name)) +   (format nil "Hello, ~a" name))  (hello "Steve") ; => "Hello, Steve" @@ -429,7 +430,7 @@ nil                  ; for false - and the empty list  (defun walker (n)    (if (zerop n)        :walked -      (walker (1- n)))) +      (walker (- n 1))))  (walker 5) ; => :walked @@ -573,13 +574,15 @@ nil                  ; for false - and the empty list      "While `condition` is true, `body` is executed.  `condition` is tested prior to each execution of `body`" -    (let ((block-name (gensym))) +    (let ((block-name (gensym)) (done (gensym)))          `(tagbody +           ,block-name             (unless ,condition -               (go ,block-name)) +               (go ,done))             (progn             ,@body) -           ,block-name))) +           (go ,block-name) +           ,done)))  ;; Let's look at the high-level version of this: @@ -611,8 +614,15 @@ nil                  ; for false - and the empty list  ## Further Reading -[Keep moving on to the Practical Common Lisp book.](http://www.gigamonkeys.com/book/) +*   [Keep moving on to the Practical Common Lisp book.](http://www.gigamonkeys.com/book/) +*   [A Gentle Introduction to...](https://www.cs.cmu.edu/~dst/LispBook/book.pdf) + + +## Extra Info +*   [CLiki](http://www.cliki.net/) +*   [common-lisp.net](https://common-lisp.net/) +*   [Awesome Common Lisp](https://github.com/CodyReichert/awesome-cl)  ## Credits. | 
