I *don't* want dynamic calls to stand out. I want seamless interoperability.
let arrayOfDogs = [ Python.Module(dog).Dog("Brianna"),
Python.Module(dog).Dog("Kevin") ] // Swift array of Python objects
let b = arrayOfDogs.sorted() // use Swift 'sort' function on Python objects
(invoking Python '<' and '==' operators)
let c = arrayOfDogs.forEach { $0.bark() } // Swift 'forEach' calling Python
'bark'
etc.
--
C. Keith Ray
* https://leanpub.com/wepntk <- buy my book?
* http://www.thirdfoundationsw.com/keith_ray_resume_2014_long.pdf
* http://agilesolutionspace.blogspot.com/
> On Dec 3, 2017, at 6:57 AM, Tino Heth via swift-evolution
> <[email protected]> wrote:
>
>
>> What do you think about having a special method ‘dynamic' defined in this
>> protocol, such that the compiler magic lookup behavior is only available
>> when chained after that method?
> I guess „dynamic“ isn’t a common property name, but imho such magic doesn’t
> feel right, even when there are no collisions in real-world code.
>
>> let y = np^.arange?^(24)?^.reshape^?(2, 3, 4)!
>
> That looks quite ugly… but imho that’s at least partially because of the
> choice of character
> let y = np:arange?:reshape?:(2, 3, 4)!
> doesn’t seem to be as bad as the use of carets.
>
> But still, you would have to jump through some hoops to use both kinds of
> dispatch side by side (because you always have to think about how to call a
> method).
> On the other hand, we also have &inoutParameter and try, which makes some
> things less convenient — and I’d say that dynamic dispatch is somehow
> comparable to inout-parameters (both shouldn’t be used if you can get around
> it).
>
> So, why do people want differentiate?
> I can see two major motivations for a different syntax:
>
> a) you want to dynamic calls to stand out — which also could be done by tools:
>> let y = np.arange?(24)?.reshape?(2, 3, 4)! // let the editor use a
>> different font/color for non-static stuff
>
>
> b) you want to be sure that in a given situation, no dynamic dispatch is used
> — which could be solved by keeping the dot as general way to call something,
> and add an alternative that will only use static lookup
>
> No matter what direction is taken here, imho this whole story has a really
> gigantic impact on the shape of Swift, and I have strong concerns if the two
> changes are reviewed in a normal way and added this year… there’s no
> experience with the proposed changes yet, and afaics, it has become quite
> hard to correct additions that turn out to be not as positive as expected.
>
> - Tino
>
> _______________________________________________
> 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