"... and if they have eggs, get a dozen, " she added.

He later came home with 12 gallons of milk.

"Why'd you get so much milk!?!" his wife asked.

He replies, "THEY HAD EGGS!"

top 25 comments

sorted by: hot top controversial new old
[–] 104 points 3 months ago* (3 children)

Alternate version:

"While you're there, pick up some bread," she added. He never returned.

  • source
  • hideshow 3 child comments
  • [–] 27 points 3 months ago (4 children)

    "Buy two forks. Buy two forks for every fork you buy."

  • source
  • hideshow 4 child comments
  • [–] 20 points 3 months ago (3 children)
  • [–] 9 points 3 months ago

    What? They apparently had eggs. If, then, else.

  • source
  • [–] 29 points 3 months ago (8 children)

    Should have gotten 13 gallons.

  • source
  • hideshow 8 child comments
  • [–] 25 points 3 months ago (6 children)

    No - he was asked to bring 1 or 12, not 1 and 12

  • source
  • parent
  • hideshow 6 child comments
  • [–] 32 points 3 months ago (4 children)

    try reading it again. Wife clearly says "and" not "or"

  • source
  • parent
  • hideshow 4 child comments
  • [–] 21 points 3 months ago (3 children)

    The comma operator would like to have a word with you. I see a pause after eggs, 12 gallons it is

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comma_operator

  • source
  • parent
  • hideshow 3 child comments
  • [–] 8 points 3 months ago (2 children)

    Doesn't change it.

    Wife adds 1 gallon of milk to shopping list;

    Wife adds ( eggs, dozen) gallons of milk to shopping list;

    Shopping list has 1 gallon and a dozen gallons for a total of 13 gallons.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 10 points 3 months ago*

    The shopping list doesn’t need to be additive, that’s just one way of interpreting what the wife wrote. There is no one correct way to read a joke as a program (my whole point), that is unless you write an interpreter for jokes :P

    function getGallonOfMilk() {
      return 1;
    }
    
    function getDozen() {
      return 12;
    }
    
    const hasEggs = store.checkInventory(“eggs”);
    
    const result = (
      getGallonOfMilk(),
      hasEggs && getDozen()
    );
    
    console.log(result * "🥛"); // 🥛🥛🥛🥛🥛🥛🥛🥛🥛🥛🥛🥛
    
  • source
  • parent
  • load more comments (1 reply)
  • [–] 5 points 3 months ago

    Requirements unclear.

  • source
  • [–] 2 points 3 months ago (5 children)

    I still don't understand why he managed to get 12 gallons and not 11 or even 10.

  • source
  • hideshow 5 child comments
  • [–] 13 points 3 months ago (4 children)

    So get a gallon of milk, and IF they have eggs, get a dozen (gallons of milk). Basically this is an if statement meaning if X is true, do this. Well normally we think get a dozen would be get 12 eggs, but because "have eggs = true" that meant get 12 gallons of milk. The opposite would've been eggs=false and he'd come home with 1 gallon.

    I'm not a Dev so I can't write the code better, but I understand the language enough

  • source
  • parent
  • hideshow 4 child comments