Hacker News new | ask | show | jobs
by chc 5401 days ago
CoffeeScript does allow ! for negation, but contracts have their own syntax and semantics separate from the rest of the language. It's a little confusing initially, but I suppose there aren't a lot of good operators left. There are a lot of similar convenient inconsistencies that people hardly notice once they sink in:

• Indentation shifts mean different things depending on context (could mean we're doing an object literal, could mean we're defining a function, could mean we're entering a loop, etc.)

• Looping through arrays uses "in" while looping through everything else uses "of"

• Array and object literal syntax might create arrays and objects or define variables depending on which side of the equals sign you're reading