On $ specifically, I found this Wikipedia article listing native operators from other languages: https://en.wikipedia.org/wiki/Operator_(computer_programming). Haskell was listed with $ as an operator (‘Anything appearing after it will take precedence over anything that comes before’ per http://stackoverflow.com/questions/940382/haskell-difference-between-dot-and-dollar-sign)
I’m unconvinced a great case for `$` as an operator exists, so opposed to the source-breaking change, and supportive of SE-144. Jonathan, Thanks for the reply and Jacob, Erica, and Xiaodi as well for drafting a broader proposal. Were you suggesting `$(0)` as a way to initialize a type named `$` or more like `$0` as a literal? As a decimal-number/currency-type literal operator, I remain unconvinced that justifies a source-breaking change for reasons discussed on list (which dollar? and consistency). Addressing multiple problems seems like a good direction though (I like the list: https://github.com/jsshapiro/swift-evolution/blob/unicode-id-op/proposals/NNNN-refining-identifiers-and-operators.md#prior-discussion-threads--proposals). A thought on the draft: > • Identifiers consisting of an initial '$' (U+0024 DOLLAR SIGN) > followed by one or more decimal digits ['0'...'9'] are prohibited in defining > occurrences. These identifiers are reserved for use by the language as > anonymous closure parameter names. Would it make sense/is it already the case for closure parameters to be let-like constants? (I don’t know how the compiler works it, but the error ‘Cannot assign to value: %something% is immutable’ makes me think no.) Can closure parameters be treated as automatically generated identifiers instead of a special restriction in name? Regards, Will Stanton > On Oct 21, 2016, at 10:48 PM, Jonathan S. Shapiro > <[email protected]> wrote: > > On Fri, Oct 14, 2016 at 9:29 PM, Will Stanton via swift-evolution > <[email protected]> wrote: > I’m a bit curious about how `$` is/would be used as a prefix operator! > Perhaps I’m not creative :-( > > Well for one thing, $(0) can be understood as a value constructor for a > currency object having a value zero... _______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
