Project

General

Profile

Feature #16994

Sets: shorthand for frozen sets of symbols / strings

Added by marcandre (Marc-Andre Lafortune) 3 months ago. Updated 21 days ago.

Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:98969]

Description

I would like a shorthand syntax for frozen Sets of symbols or of strings.

I am thinking of:

%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):

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.


Related issues

Related to Ruby master - Feature #16989: Sets: need ♥️Assignedknu (Akinori MUSHA)Actions

Also available in: Atom PDF