Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Discard reader macro has possible collision with tags that start with an underscore #30

Closed
cndreisbach opened this issue Sep 13, 2012 · 2 comments

Comments

@cndreisbach
Copy link

According to the edn spec, symbols can begin with an underscore. ("Symbols begin with a non-numeric character and can contain alphanumeric characters and . * + ! - _ ?. If - or . are the first character, the second character must be non-numeric. Additionally, : # are allowed as constituent characters in symbols but not as the first character.")

Tags are symbols prefixed with a pound sign. Therefore, you could have a tag like this: #_cnd/my-snazzy-tag.

#_ is a reader macro used to discard the next value, however. In this case, instead of my tag, I discard the symbol cnd/my-snazzy-tag, which is not what I want.

Should there be a special rule eliminating underscores as the first character of a tag? Or should this be handled a different way?

@richhickey
Copy link
Contributor

Yes, the rule will be tag symbols (after #) must begin with an alphabetic character. All other symbols after # are reserved, e.g. #{ starts a set, and #_ a discard etc.

On Sep 13, 2012, at 3:37 PM, Clinton N. Dreisbach wrote:

According to the edn spec, symbols can begin with an underscore. ("Symbols begin with a non-numeric character and can contain alphanumeric characters and . * + ! - _ ?. If - or . are the first character, the second character must be non-numeric. Additionally, : # are allowed as constituent characters in symbols but not as the first character.")

Tags are symbols prefixed with a pound sign. Therefore, you could have a tag like this: #_cnd/my-snazzy-tag.

#_ is a reader macro used to discard the next value, however. In this case, instead of my tag, I discard the symbol cnd/my-snazzy-tag, which is not what I want.

Should there be a special rule eliminating underscores as the first character of a tag? Or should this be handled a different way?


Reply to this email directly or view it on GitHub.

@cndreisbach
Copy link
Author

Great -- thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants