Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

A programmer walks into a bar and ask for a drink. The bartender says I'll give you a drink if you tell me a programmer joke. And he says: a programmer walks into a bar and ask for a drink. The bartender says I'll give you a drink if you tell me a programmer joke. And he says: a programmer walks into a bar and ask for a drink. So he gives the guy a drink, so he gives the guy a drink, so he gives the guy a drink.


... (continued): The bartender gives him a puzzled look and says, "I didn't get it", to which the programmer responds "To understand recursion you must first understand recursion."



This is a wonderful easter egg, thanks!


Did you mean where it says "did you mean . . . "?


Yes


I think the origins of the joke is the Jargon File: http://www.catb.org/jargon/html/R/recursion.html



In a similar vein:

One day a student came to Moon and said: “I understand how to make a better garbage collector. We must keep a reference count of the pointers to each cons.”

Moon patiently told the student the following story:

“One day a student came to Moon and said: ‘I understand how to make a better garbage collector...


Disclaimer : Details nobody asked for.

These are one of the jokes originating from MIT AI Lab. And, Moon mentioned here is David Moon - one of the famous hackers from MIT AI lab.

Other such jokes from same origin [1]

[1] - http://www.catb.org/~esr/jargon/html/koans.html


An infinite number of mathematicians walk into a bar. The first one orders a beer. The second one orders half a beer. The third one orders a fourth of a beer. The bartender stops them, pours two beers and says, “You guys should know your limits.”


There is a bunch of funny problems regarding Hilbert Hotel, with countably infinite number of suits :) .


Now the programmer just waits till the stack blows up to get his free drink.


Or whether the tale is optimised


Well, that depends on the language they speak.


That's how you get out of the simulation.


I thought someone was going to raise a flag.


This recurs until the programmers runs out of stacks


Recursive till you fall off your stool.


Finally, a recursion joke that is not about infinite recursion!


Well, strictly speaking it is. There is no terminating condition- the OP simply chose to return at an arbitrary point in the recursion.


Is it? In the outer "real world" the bartender will give the programmer a drink for a joke. It could be a knock-knock joke or anything, but the programmer makes it recursive. Thus making the whole thing a joke to us, otherwise it would be a knock-knock joke embedded in a pointless programmer/bartender reference.

In the first joke level, the bartender will give the programmer a drink for a joke; it doesn't work to arbitrarily end here because "a programmer asks the bartender for a drink and the bartender gives him a drink" isn't anything like a joke to qualify at the parent level.

The next level is another layer of recursion and here the programmer can literally ask for a drink and get one even though that isn't funny in itself because it can be funny in the context of the outer joke using "he asked for a drink and got one" as a cheeky way to tell a joke to get a drink, and because it's a reference to recursion, the reason for Chekhov's Programmer in the opening sentence, so making something that qualifies as a joke to get the real world programmer a real world beer.

Seems to me like it's the earliest point it could return and still potentially work, rather than an arbitrary point?


I thought it stopped due to exhausting the bar's stock, which conveniently was limited to only three drinks.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

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

Search: