in reply to Light Bulb Joke

An attempt at programmatic analysis of this question:

Grammar
LightBulbJoke := question answer;
question := "How many " ROLE "s do you need to change a light bulb?";
answer := NUMBER "." explanation;
explanation := (FUNNYCLICHÉ)+;

-----------------------

Example

Set
ROLE := "programmer"
NUMBER := "None"
FUNNYCLICHÉ := "It's a hardware problem."

giving
How many programmers do you need to change a light bulb? None. It's a hardware problem.

Now, maybe someone can come up with a 'perl' representation...


Here are a couple I had not heard before ...

How many people does it take to change an object-oriented light bulb?
Change it? Aw shucks, I was going to reuse it.

How many Lisp programmers does it take to change a light bulb?
Hmmm, I'm not sure, better find out....
Hmmm, I'm not sure, better find out....
Notes: LISP is a recursive programming language. One problem LISP programmers have to contend with is infinite recursion. (cf computer dictionary entry: recursion - see recursion) These lisp heads are usually research AI types and their standard answer is as in the punchline. It could be improved:
(((H)mmm,) (I'm ((not) sure, better))) (find (out))...

"When you are faced with a dilemma, might as well make dilemmanade. "