A wife tells her programmer husband: β€œGo to the store and buy a gallon of milk. If they have eggs, get six.”

He comes back with six gallons of milk. When she asks why, he replies: β€œThey had eggs".

you are viewing a single comment's thread
view the rest of the comments
[+] 13 points 10 months ago (13 children)
  • [–] 62 points 10 months ago (3 children)

    The joke is bad because the husband is supposed to bring seven gallons of milk. Since the egg condition is checked after he already got one.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 18 points 10 months ago* (last edited 10 months ago) (1 child)

    No no, the imperative "get six" overrides the previous "buy a gallon of milk" if the "they have eggs" condition is met.

    "get six" implies x === 6 not x = x + 6, that would be "get six more"

    The real problem is that "buy" was only specified in the first case. Because the conditional was met, he should get six gallons of milk but not buy them.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 7 points 10 months ago (1 child)

    Given the stereotypical difficulty of "product folks" and programmers agreeing on and building shared understanding of what to build, this joke seems clear and straightforward. It works because of course, the customer and the programmer failed to agree on something simple.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 5 points 10 months ago (5 children)

    Maybe it's just worse when written. The period at the end of the sentence makes it hard to see how it could be misunderstood.

    To your point though, not sure if I'm aware of any programming language that would continue a statement with a following if block. Far more likely that it would fail due to lack of an element to apply the 6 to rather than having a pointer to the previous object, or he would try getting what ever the literal version of a 6 would be, or maybe some slang version.

  • source
  • parent
  • hideshow 5 child comments
  • [–] 7 points 10 months ago (2 children)

    Python, though the logic would be backwards:

    milk_gallons = 6 if eggs > 0 else 1
    
  • source
  • parent
  • hideshow 2 child comments
  • [–] 0 points 9 months ago (1 child)

    Right, it would be started basically exactly the opposite. Certainly not a statement followed by an if block.

  • source
  • parent
  • hideshow 1 child comment