Created
February 10, 2012 16:29
-
-
Save jashkenas/1790643 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Apart from the basic niceties of being able to leave off | |
# parens in clear calls... | |
print 10 | |
alert "Hello #{name}" | |
# ... the reason why they're important to have in CoffeeScript | |
# is because it allows our "block" syntax (single function body | |
# passed as the final argument to a call) to play nicely with | |
# significant whitespace: | |
fs.readFile "config/options.json", (err, contents) -> | |
... work with file here. | |
# Writing the above without the ability to leave off the | |
# parens which would otherwise have to wrap the function body | |
# would defeat a large part of the purpose of significant | |
# whitespace in the first place. |
Ah, interesting. An explicit "close" operator that ends implicit calls, without having to start them... That would be great material for a Github ticket, if you feel like writing it up and starting discussion. I also don't think it's something we've ever talked about before (a true rarity for CoffeeScript syntax proposals).
Another way to avoid the inconsistency is of course:
($ 'some selector').click (e) ->
...
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The latter of your two examples is what I used, but I share your distaste for the trailing paren in a language that tries to avoid them. The former is obvious but not really helpful, since I'm looking for syntactical fixes, not code restructurings. What do you think of a low-precedence method calling syntax for chaining without parens?