2018: start here: Lisp-Lang.org, and ask questions on #lisp
Common Lisp Quick Reference for the language and Quickref (repo) reference manuals for libraries available via Quicklisp
Released 2016: Common Lisp Recipes by Edi Weitz.
News and general topics
Lisp tools and projects
Lisp Links
Package Management
Natural Language Processing
Data Storage
Bit Twidling
Lisp | C | |
---|---|---|
Extract | (setf bits |
bits = |
Modify | (setf new-value |
new_value = |
See also: Lisp manipulation of C structures from Common Lisp topics in Wikibooks.
Networking & Distributed Systems
select()
for Lisp?#'sb-sys:serve-event
instead
of select()
, which works like FreeBSD
style kqueue()/kpoll()
or Linux epoll()
,
and OpenMCL's #'process-input-wait
works like select()
.
An Excellent example of
nonblocking sockets in SBCL that is brief and to the point.Other resources and libraries
Some of what makes Lisp unique
try-except
exception-handlingA: You don't need one just for strings when you have the SEQUENCE routines.
But for those crossing-over, you might find this helpful: split-sequence.
Some things to consider: do you mind creating new strings during a split as with Perl or Python, or would you prefer to avoid run-time memory allocation?
After all, many common operations in Perl, Python and especially Ruby simply waste CPU cycles and memory. "Processor and RAM are cheap," you say? Well, that depends...! For long-running, persistent processes; for deterministic time (hard real-time) execution; etc; those things matter. The culture and tradition of Lisp simply makes you more conscious and the language itself gives you control over allocating memory at runtime, all without pains of C and C++ memory management.
detachtty
will help!Miscellaneous