Hacker News new | past | comments | ask | show | jobs | submit login

The common thing done with it is:

  #+nil(this expression (won't be read))
(Also done with #+and, and #+or.)

This is an unofficial Common Lisp s-expression level comment. One of these incredibly nice things that's missing in most programming languages. It comments out a single s-expression, no matter how complex. It's like a #|block comment|# in that it can span multiple lines, and like ; line comment in that you only put something at the beginning. Have a complex expression within a function, that you need to temporarily shut down? Just shove #+nil in front of it.

(The #+nil version is discouragd because there's a remote chance somebody will define a * feature * called :nil for some reason.)

A less-common thing done with it is library interop. Many libraries tend to add a tag to * features * to indicate they've been loaded, so in your library, you can use #+library_tag to detect that another library is a part of the same project, and conditionally compile-in some extensions or interoperability code.

(@dang, I think HN could use a way to escape the * * formatting marks. For a site and community that has a soft spot for Lisp, not being able to type in the "earmuffs" is something that always bewildered me.)




I would guess that there was a feature :nil defined in the NIL [1] system.

[1] https://en.wikipedia.org/wiki/NIL_(programming_language)


That must be it, thanks!




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: