
Simplified Common Lisp reference - macco
http://jtra.cz/stuff/lisp/sclr/index.html
======
mark_l_watson
Very nice resource! I have a suggestion: add a search field that would just
search the linked function documentation summaries (depth of 1 web crawl). As
someone else mentioned, adding a new section for CLOS would also be useful.

Pardon a shameless plug, but I released the 4th edition of my Common Lisp book
yesterday (free to read online, and book is CC licensed so you can share it):
[https://leanpub.com/lovinglisp](https://leanpub.com/lovinglisp)

------
bshimmin
I'm not really sure who the intended audience for this is! I find it quite
difficult to imagine that anyone who doesn't already know what the functions
do could actually figure it out from the descriptions, eg. "CDR function
returns cdr part of cell in the argument, that is list of all elements but
first. CDR is identical to REST."

~~~
drabiega
I used this site quite a bit when I was first introduced to Lisp.

Reading the first few chapters of ANSI Common Lisp gave me a good
understanding of the semantics of the language, and this provided me with a
specific explanation of the functionality of each function. Together that was
enough to get through my assignments for the class I was taking at the time.
It was most helpful for things like the differences between eq, eql, and
equal.

------
girzel
Contrast to the Common Lisp Quick Reference:
[http://clqr.boundp.org/](http://clqr.boundp.org/)

------
palad1n
First thing I searched for on the page: loop (not found).

~~~
shakna
You have let [0], why would you need a special loop function?

[0]
[http://jtra.cz/stuff/lisp/sclr/let.html](http://jtra.cz/stuff/lisp/sclr/let.html)

Edit:

That is to say, this is a simplified reference, and loop is a macro, not a
special form.

~~~
juki
I assume you're thinking about Schemes `(let loop (...) ...)`, but that
doesn't exist in Common Lisp. CL:LOOP is a looping macro with its own small
DSL.

    
    
        (loop :for i :below 5
              :when (evenp i) :collect i)
        ;=> (0 2 4)

~~~
lispm
That's a step up from loops with 'goto':

    
    
        (prog ((result '())
               (i 0))
          loop
          (when (>= i 5)
            (return (reverse result)))
          (when (evenp i)
            (push i result))
          (incf i)
          (go loop))

~~~
TeMPOraL
tagbody/go is implementation detail of macro expansion though.

~~~
lispm
prog + goto was two decades one of the main tools for loops in Lisp...

------
lisper
If you use this library you can simply ignore most of the things on that page:

[https://github.com/rongarret/ergolib](https://github.com/rongarret/ergolib)

~~~
Koshkin
> _It deliberately sacrifices run-time efficiency_

I'll pass...

~~~
lisper
Premature optimization is the root of all evil.

