-1 for using -> and => to mean different types of functions, not-pure and pure respectively. In fact I dislike using symbols unless they are really well known. Keywords read a lot better.
Sent from my iPad > On 22 Dec 2015, at 8:37 AM, Joe Groff via swift-evolution > <[email protected]> wrote: > > >> On Dec 21, 2015, at 12:20 PM, T.J. Usiyan via swift-evolution >> <[email protected]> wrote: >> >> I have been thinking about this proposal since the list opened up. I think >> that @read(none|only) should be considered as an alternative. Just as in >> clang and the optimizer annotations @read(none) would be the attribute >> described and @read(only) could read global variables but could not write. >> Is it possible to generate a runtime error if we guarantee that function A >> is pure, only to call it and 'find out' that it isn't? If we can, then do >> try syntax could be considered. > > Another approach here is an effects system. If a pure function were spelled > `(T) => U`, then `readonly` could be expressed as `(T) reads => U`, and (T) > -> U could remain as a synonym for (T) reads, writes => U, in the spirit of > encouraging immutability without punishing mutability. > > -Joe > > _______________________________________________ > swift-evolution mailing list > [email protected] > https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
