summaryrefslogtreecommitdiffhomepage
path: root/common-lisp.html.markdown
diff options
context:
space:
mode:
authorSuzane Sant Ana <tetestonaldo@gmail.com>2017-12-31 14:27:06 -0200
committerGitHub <noreply@github.com>2017-12-31 14:27:06 -0200
commit42f9329bb3a028d374d6397991ac48b44064741e (patch)
tree1e75e2b3e122aeb863e3ffa037f6f64c4027fbf8 /common-lisp.html.markdown
parente6b77595f2669d66ac7be43c6e6083cbff80a9a7 (diff)
parent70a36c9bd970b928adde06afb2bd69f6ba8e5d5c (diff)
Merge pull request #1 from adambard/master
update
Diffstat (limited to 'common-lisp.html.markdown')
-rw-r--r--common-lisp.html.markdown26
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.