> On Jan 18, 2017, at 11:00 AM, Joe Groff <[email protected]> wrote:
> 
>> 
>> On Jan 18, 2017, at 8:57 AM, Matthew Johnson <[email protected]> wrote:
>> 
>> 
>>> On Jan 18, 2017, at 10:54 AM, Joe Groff via swift-evolution 
>>> <[email protected]> wrote:
>>> 
>>> 
>>>> On Jan 18, 2017, at 8:50 AM, Tony Allevato <[email protected]> wrote:
>>>> 
>>>> Good point—I hadn't considered the distinction.
>>>> 
>>>> Does that mean a future version of Swift might allow `let` in a protocol 
>>>> to indicate a value that must be immutable after initialization, such that 
>>>> a computed `var { get }` wouldn't satisfy it?
>>> 
>>> It's conceivable that even computed `let` properties could be supported, if 
>>> the getter implementation is a pure function of `self`.
>> 
>> How would that work when `self` is mutable?
> 
> The exact meaning of "pure" and "immutable" would have to be designed. To a 
> first approximation, you could say a pure method would only be able to read 
> immutable global or class data (which is itself `let` or `pure func`, not 
> anything that's potentially mutable) in addition to its own arguments.

Got it.  That makes sense.  Looking forward to the expanded pure / immutable 
model someday!

> 
> -Joe

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

Reply via email to