From: "austin (Austin Ziegler) via ruby-core" Date: 2023-03-30T19:29:34+00:00 Subject: [ruby-core:113054] [Ruby master Feature#19559] Introduce `Symbol#+@` and `Symbol#-@`, and eventually replace boolean arguments with symbols Issue #19559 has been updated by austin (Austin Ziegler). What would be the result of the pathological cases? ```ruby +:"-chomp" -(-:chomp) ``` With the proposed implementation, it would be `:"-chomp"` and `:"--chomp"`, but those both feel wrong. If we wanted to accept non-keyword arguments for `gets` and `Integer`, I would support more `:no_chomp` or `:no_exxception`. Unless of course, this is a very early poisson d���Avril, in which case I think we need to have *more* unary operators on symbols so we can implement BF entirely with symbols. ---------------------------------------- Feature #19559: Introduce `Symbol#+@` and `Symbol#-@`, and eventually replace boolean arguments with symbols https://bugs.ruby-lang.org/issues/19559#change-102592 * Author: sawa (Tsuyoshi Sawada) * Status: Open * Priority: Normal ---------------------------------------- I propose to define `Symbol#+@` and `Symbol#-@`, so that we can add positive or negative polarity to symbols. A possible implementation can be equivalent to what can be achieved by this: ```ruby class Symbol def -@; "-#{self}".to_sym end def +@; self end end ``` The intention behind this is to, eventually, replace boolean positional or keyword arguments with symbols so that, instead of this: ```ruby "foo".methods(false) gets(chomp: true) Integer("2.3", exception: false) ``` we can write like this: ```ruby "foo".methods(-:inherit) gets(+:chomp) Integer("2.3", -:exception) ``` -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/