From: matz@... Date: 2020-09-25T04:26:52+00:00 Subject: [ruby-core:100117] [Ruby master Feature#16994] Sets: shorthand for frozen sets of symbols / strings Issue #16994 has been updated by matz (Yukihiro Matsumoto). Status changed from Open to Feedback We are going to introduce built-in set, but not in 3.0 (too little time to implement it before 3.0 release). After merging built-in set, we will seriously consider this proposal. Remaining issues: * Name? `%ws` would be the first two character specifier after `%`. Is it reasonable? Or should we seek another name? * Frozen? `%w` returns non frozen array of non frozen strings. How should `%ws` behave? Matz. ---------------------------------------- Feature #16994: Sets: shorthand for frozen sets of symbols / strings https://bugs.ruby-lang.org/issues/16994#change-87685 * Author: marcandre (Marc-Andre Lafortune) * Status: Feedback * Priority: Normal ---------------------------------------- I would like a shorthand syntax for *frozen Sets of symbols or of strings*. I am thinking of: ```ruby %ws{hello world} # => Set['hello', 'world'].freeze %is{hello world} # => Set[:hello, :world].freeze ``` The individual strings would be frozen. These literals would be created once at parse time (like Regex are): ```ruby def foo p %ws{hello world}.object_id end foo foo # => prints the same id twice ``` We should consider these sets to return a unique frozen `to_a`. Reminder: Ruby has literal notations for `Rational` and `Complex`. I've sadly never had to use either. I would venture to say that `Complex` is much less used than `Sets`, and that sets are underused. Reminder: previous discussion for builtin syntax was not for frozen literal, strings or symbols specifically: https://bugs.ruby-lang.org/issues/5478 For builtin notations for generic sets (i.e. *unfrozen* or containing *other than string/symbol*), please discuss in another issue. -- https://bugs.ruby-lang.org/ Unsubscribe: