пятница, 19 апреля 2013 г.

nconc

Lispers know that destructive list functions are dangerous, that you should know that the data is fresh consed. I've known this too, but still today I was still bitten by nconc. When I applied it to two arguments that shared structure, it returned a circular list. Try this:

(setf *print-circle* t)
(let ((x (list 1 2 3)))
   (nconc x x))

Be careful!

Lisp Blog

Recently I have been programming quite a lot in Common Lisp. Full time for about 5 months on a professional code base, written by some cool guys who now work either at Lisp vendor companies or as successful independent consultants.

I have learned a number of lessons.

Community

The Lisp community does exist :)  only it has to be viewed globally. There is merit in attempting to maintain local communities, of course, but one cannot hope to achieve as much of activity around Lisp as we have around Python, for example.

Therefore, I will not continue writing this blog in Russian. Need to reach out to a wider audience.

Using Lisp in startups

It might be hard to persuade your company to use Lisp, (no, quoting Paul Graham is not enough, though it helps). However, if you encounter a company, especially a startup, that does use Lisp, despite the obvious obstacles such as lack of good Lisp programmers, and a rather steep learning curve for existing programmers, that company deserves attention. Chances are something interesting is happening there.

Lisp Libraries and Technologies

I have learned and used GBBOpen, Screamer, have seen how Weblocks is being used as a RAD tool (and want to try it myself later). I am going to write about this later in this blog so stay tuned :)