you are viewing a single comment's thread
view the rest of the comments
[–] 15 points 1 year ago (4 children)

If there's parallelism/async involved, then there definitely is an argument to decrement first, execute later. Otherwise you could make a wish for the genie to just wait for an hour and then make as many wishes as you want within that hour.

  • source
  • parent
  • hideshow 4 child comments
  • [–] 3 points 1 year ago (2 children)

    But how can you decrement a future dated wish, since you can't guarantee nothing will happen that prevents the genies ability from executing said wish? E.g. i mean like telling the Genie to do something 5 days from now, not your example which would begin immediately after making said wish.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 4 points 1 year ago

    You decrement the wish counter first, execute the action (which includes waiting those 5 days), and if it fails you increment the counter back. Something like this:

    wishes = wishes - 1;
    executeWish(wish).unwrap_or_else(|_| { wishes = wishes + 1; })?
    

    This way if the action fails in the future, you get a wish back and can ask something else.

  • source
  • parent
  • I always thought that wish-granting is instant, even if the effects of that wish are delayed.

    So if I wish for something to happen in 5 days, it's granted in the moment and guaranteed to happen. That raises a question though: Can I wish to cancel a wish I have already made, but whose effect has not yet taken hold? On its face, this should be possible, but if we take it as a given that all valid wishes are always granted at the moment of utterance, then it might be physically/psychologically impossible for me or anyone else to revoke the wish before its IRL effect is complete.

  • source
  • parent