> On Jan 11, 2017, at 23:12, Tony Allevato <[email protected]> wrote:
> 
> 
> 
>> On Wed, Jan 11, 2017 at 6:46 PM Jay Abbott via swift-evolution 
>> <[email protected]> wrote:
>> As Rob Mayoff pointed out, you can use MODIFIER LETTER PRIME - or PRIME, 
>> DOUBLE PRIME, and TRIPLE PRIME - which makes more sense than an apostrophe. 
>> Now if only there were a keyboard that had a touch-screen at the top which 
>> could be used for typing context-sensitive characters that would otherwise 
>> be difficult to type. So yeah, solution is to make characters easier to 
>> type, not modify the language. If like me you don't have such a keyboard, 
>> you can always use ctrl+⌘+<space> and type ‘PRIME’ to find it, then pick it 
>> from recently used/favourites.
>> 
>> Regarding the other point, I agree that character literals would be handy, 
>> but again I’m not sure if apostrophe is the right character to indicate it. 
>> Although it is familiar, perhaps LEFT SINGLE QUOTATION MARK and RIGHT SINGLE 
>> QUOTATION MARK would be better, they can be relatively easily typed with ⎇+] 
>> and ⎇+⇧+] respectively. Xcode could also convert two apostrophes into ‘’ for 
>> you and your fingers would quickly learn to type ' ' ← ‹char›.
>> 
> I'm not entirely convinced that we *need* special Character literals. The 
> type checker is already able to treat a double-quoted string literal as a 
> String, Character, or UnicodeScalar based on context in most places. Wouldn't 
> it be more valuable to fill the gaps, like Charlie Monroe mentioned above, 
> where these work:
> 
>     let c: Character = "a"
>     let c = "a" as Character
> 
> and this is caught as an error by the compiler:
> 
>     let c: Character = "ax"
> 
> but this slips through and crashes at runtime?
> 
>     let c = Character("ax")
> 
> I wonder what improvements could be made in the compiler to have that last 
> one do something more appropriate than just call Character.init(String), 
> which causes the runtime error.

This reminds me of the "URL literal" thread. I believe the two ideas were 
essentially to add regex support to the compiler, add support for compiler 
"validation" of literals through compile-time functions, or both.

IIRC, it was decided that both ideas were at least out of scope for phase 1 (I 
don't recall if this specific issue was brought up as a potential use case, 
though... unlike `Character`, `URL` isn't part of the stdlib).

- Dave Sweeris
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to