>> I think this is better modeled in Swift as something like:
>> 
>>      let john = (firstName:"John", lastName:"Doe")
>>      let alice = with(john) {
>>              $0.firstName = "Alice"
>>      }
> 
> You can kind of do this now:
> 
> struct Person {
>     var firstName, lastName: String
> }
> 
> func modify<T>(item: T, update: (inout T) -> Void) -> T {
>     var this = item
>     update(&this)
>     return this
> }
> 
> let carol: Person = modify(john) {
>     $0.firstName = "Carol"
> }
> 
> print(carol)

You *can* do this now. I'm suggesting it be added to Stdlib.

-- 
Brent Royal-Gordon
Architechies

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to