Purity Test
"Have you ever ..." : a Common Lisp Purity Test

A purity test attempts to gauge how "pure" you are within some realm of experience by having you answer a list of questions regarding which acts, etc. associated with the subject you have engaged in. Generally, for each "yes" answer you lose a purity point. The result is scaled to tell you what percentage of purity you still retain. http://www.armory.com/tests/purity.html

This is work in progress; collected from IRC. More entries welcomed (but may be edited/removed). When the volume demands it we'll reorganise: probably using ANSI section headings

So. Have you ever ...


* Programming in Lisp

  ... modified quoted structure?
      ... intentionally?
  ... rewritten more than five lines of code into a format string
      ... ten lines?
      ... twenty?
  ... written your own letf?
      ... and made it threadsafe?
  ... used a double nested backquote? 
      ... A triple nested backquote?
      ... a snail ,@'
  ... found a sensible use for PROGV
      ... for GENTEMP
  ... redefined FIND-PACKAGE
  ... written a macro with an expansion including EXPORT?
     ... DEFPACKAGE?
  ... created a logical pathname host with translations
      ... correctly
      ... and understood it
      ... without cut and pasting from another example
  ... reported a bug in the implementation you're using
      ... and argued with the authors when they claimed their current behaviour was correct
      ... and won ?
  ... used symbol properties?
      ... in a macro?
  ... optimized critical code with the aid of disassemble
      ... optimized noncritical code the same way for fun
  ... written code which uses nondeterministic evaluation?
     ... without using Screamer?

* Programming Lisp

  ... implemented a "purports to conform" Common Lisp system
      ... primarily in C (more than 90% by linecount)
      ... primarily in Lisp
      ... primarily in Java
      ... primarily in Forth
      ... in 500 lines or fewer
  ... ported an existing CL system to a new OS/CPU/architecture

* Reinventing the wheel

  ... written your own version of 
      ... defsys
      ... with-gensyms
      ... split
      ... collecting
      ... read
      ... compile-file
      ... uffi
      ... an XML parser
      ... an HTTP server
  ... and successfully rationalised it (other than as a learning exercise)
  ... rewritten a nontrivial program in lisp to avoid using FFI?
      ... made it faster than the C version?
  ... written a portability layer between two different Lisp implementations?
     ... three?
     ... and one of them was MACLISP?
     ... and gotten somebody else to use it?
     ... and then threw it away in disgust and used somebody else's?

* The environment

  ... installed a local copy of the hyperspec or equivalent?
      ... fixed the known bugs in it?
      ... with a lisp program?
      ... set your development environment up to refer to ANSi definitions 
          with simple keypress/menu selection?
  ... explained the history of your development environment by reference to
      ... GNU Emacs
      ... Spice Lisp/Hemlock
      ... the Lisp Machine
      ... Gosmacs

* Kulchur

  ... discussed lisp in a public forum with two or more Eri[ck]s?
  ... answered the "how do I generate a standalone executable" question?
      ... in a way that actually satisfied the questioner?
  ... helped someone with their ``lisp'' homework?
      ... in a way which was utterly unhelpful to their goal?
  ... thrown an indirect jab at a Schemer?
      ... and gotten away with it?
  ... given up reading comp.lang.lisp?
      ... after posting to say that you're not reading it any more?
      ... repeatedly?
  ... run a Lisp blog?

  ... attended an ILC or ALU-organized LUGM?
      ... and presented a paper?
      ... and ragged on multiple inheritance?

  ... gone to a conference and spent your time hacking Lisp exclusively?
      ... missed the talk by rms because of this?

  ... been described as a Yabo?
  ... sidetracked an on-topic discussion on #lisp to politics?
      ...got it back on track?
  ... sidetracked an on-topic discussion on #lisp to lisp?
      ...got it back on track?
  ... written CL code to manage /ignore's?

  ... mentioned the Schememonster two days in a row?

* Employment

  ... tried to illuminate cow-orker?
      ... and gave up in disgust?
          ... for good?
              ... posted to c.l.l about the experience?
      ... successfully?

  ... written Lisp at work?
      ... without your manager's knowledge?
      ... against the direct orders of your manager?
      ... when you are the manager?
      ... and let the manager believe you were using Perl?

      ... with managerial approval granted on the basis that it's a 
          prototype which will be rewritten in java?
          ... in Visual Basic?
          ... score one additional point for each subsequent project attempting to reimplement it in $other_language and failing

  ... started your own company to do stuff in Lisp?
      ... is it still trading?


* Blue sky

  ... started a LispOS project?
      ... started a wiki/cvs/web site/mailing list for it
  ... flamed someone else proposing a LispOS?

Humor, if you have the appropriate implants