• is the dot product operator. Sent from my iPhone
> On Mar 28, 2016, at 10:21, Thorsten Seitz via swift-evolution > <swift-evolution@swift.org> wrote: > >> Am 08.01.2016 um 09:38 schrieb Jacob Bandes-Storch via swift-evolution >> <swift-evolution@swift.org>: >> >> I'd be hesitant to support something like this. • is a very natural choice >> for a binary operator by itself, and restricting it to require the use of >> spaces seems unfortunate. > > What about if • would have to begin and end an operator containing letters? > > x = a •times• b •mod• 8 > > This looks more symmetrically (like Haskell’s backticks) and wouldn’t need > the restriction to require spaces. > > Or maybe > > x = a ‹times› b ‹mod› 8 > > Also easily typeable on a Mac keyboard. > > > >> Re: free functions vs. methods: why does this matter? Supposing `foo` were >> the syntax (bad choice, because it already has another meaning, but bear >> with me), then you could disambiguate "a `foo` b" vs "a `self.foo` b" just >> as you can with regular function calls. > > Indeed. > > -Thorsten > > >> Re: named parameters: there are two clear choices: >> - Restrict such a syntax to functions without named parameters (seems >> acceptable to me). >> - Ignore parameter names, allowing any binary function to be used >> (challenges with disambiguation, which I believe has had some discussion in >> the other thread about function names). >> >> This might be a crazy idea, but is it possible to support "a myfunc b" >> without any extra delimiters? As far as I can tell, there's currently no way >> this could parse as a valid expression, so there's no ambiguity to resolve, >> although I imagine it would be hard to make diagnostics work well. I'm not >> sure how this would play with precedence, but that hasn't been discussed for >> any of the other solutions either. >> >> Jacob Bandes-Storch >> >> On Fri, Jan 8, 2016 at 12:29 AM, Jo Albright via swift-evolution >> <swift-evolution@swift.org> wrote: >>>> The rationale is the same - the design of Swift really wants operators and >>>> identifiers to be partitioned into different namespaces. Violating that >>>> would make it impossible to parse a swift file without parsing all of its >>>> imports. This is a mistake that C made (you have to parse all the headers >>>> a file uses to reliably parse the file) that we don’t want to replicate in >>>> Swift. >>> >>> >>> >>> Thanks Chris. I now understand the reasoning for separating the two groups. >>> I don’t have a background in language creation, so whatever I can learn >>> from these email lists is awesome. I have already gained a ton of knowledge >>> following these conversations. >>> >>> >>>> Alternative: Reserve one of the operator characters as an operator >>>> introducer. Everything from that character to the next whitespace is an >>>> operator name. This would allow non-operator characters in operator names >>>> while still preserving the strict operator/identifier separation. >>>> >>>> // • is the operator introducer character >>>> infix operator •times … >>>> infix operator •mod … >>>> x = a •times b •mod 8 >>>> >>>> Limitations: >>>> You still can't use an unadorned word as an operator name. >>>> You can't use such an operator without whitespace (unlike operators whose >>>> names use operator characters only). >>> >>> >>> >>> Oooooo … that is a very cool alternative Greg. Honestly went into this >>> proposal thinking there was no possibility, but now I have a glimmer of >>> hope. >>> >>> Using “•” (option + 8 on keyboard) would be great since it is accessible >>> through key combo, but isn’t widely used in normal expressions. >>> >>> What is needed to prove worth of such a feature to be added? >>> >>> >>> Nerd . Designer . Developer >>> Jo Albright >>> >>> >>> >>> _______________________________________________ >>> swift-evolution mailing list >>> swift-evolution@swift.org >>> https://lists.swift.org/mailman/listinfo/swift-evolution >> >> _______________________________________________ >> swift-evolution mailing list >> swift-evolution@swift.org >> https://lists.swift.org/mailman/listinfo/swift-evolution > > _______________________________________________ > swift-evolution mailing list > swift-evolution@swift.org > https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution