Beauty is a top-three goal of Swift, so a proposal that is not beautiful should 
be rethought until it is.

1. """ is ugly.

2. Choosing syntax so as to pander to hacks in a few existing tools is the road 
to Ugly.

3. It’s inelegant syntax design for start and end delimiters to be identical, 
as for example ASCII quote marks are.[1]

4. Mirror image start and end delimiters are preferred, for example { and }.[1]

5. Escaping is ugly and preferably should not be necessary or even allowed.

Therefore, I propose, by example:

  let foo = 
    /"xx
    The indent of /"
        dictates indentation and must match 
    all indents through the "/
    "/xx

where an optional arbitrary identifier, for example “xx”, can be appended to 
both the open and the close quote delimiters to avoid the need for escaping the 
close quote delimiter. The identifier has no other significance in the program.

I further propose that /' and '/ should be used to delimit a string that is 
interpreted literally, including newlines except for the newline on the last 
line of the string.

In future, consideration should be given to the idea of following the /" 
delimiter by a set of space-separated flags to determine treatment of newlines, 
the escape character (so it doesn’t have to be backslash), use of interpolated 
strings, the use of escape characters, etc.

Dave

(I intended all single and double quotes in this message to be ASCII, not 
curly. If any are curly, then blame the macOS Mail app.)

[1].  I think Swift should allow delimiting strings with “curly” quotes, and 
they should nest. See 3, 4, 5 above.

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

Reply via email to