[swift-evolution] Optional Argument Chaining

Thorsten Seitz tseitz42 at icloud.com
Mon Dec 18 09:52:11 CST 2017


+1

-Thorsten

> Am 18.12.2017 um 08:42 schrieb Elviro Rocca via swift-evolution <swift-evolution at swift.org>:
> 
> While it's definitely worth knowing, it's not a really usable substitute for higher-kinded types in production code, and still requires a lot of code generation, which is eased in Kotlin thanks to its annotation/metaprogramming features.
> 
> Event the Kategory people recognized that the emulation approach is a temporary solution, waiting for the approval of a proposal for the addition of HKTs to Kotlin itself.
> 
> Unfortunately, if we don't get HKTs in Swift we're simply going to miss on a barrage of extremely useful abstractions, upon that many contemporary languages have started to rely, because they are simply the best known solutions to many problems in many contexts.
> 
> The huge amount of work that's been done in academia in the last 15 years (and it's still going) about applicatives - and also profunctor optics, another thing that requires HKTs - is mostly going to elude Swift due to its crucial lack of expressivity.
> 
> We're on the right track with the approval of the conditional conformance proposal, but my fear is that the ABI stability requirement for Swift 5 is going to lock the language interfaces in a state where it's going to be impossible for these kinds of sophistications to be added to the language at a later stage... I hope to be proven wrong here.
> 
> 
> Elviro 
> 
>> Il giorno 14 dic 2017, alle ore 15:40, Matthew Johnson via swift-evolution <swift-evolution at swift.org> ha scritto:
>> 
>> 
>> Thanks for jumping in and elaborating on a more general approach!  I don’t want to sidetrack the thread, but it actually is possible to encode higher-kindred types and protocols requiring them in Swift today.  It’s a bit clunky and requires some boilerplate but the technique is worth knowing.  https://gist.github.com/anandabits/f12a77c49fc002cf68a5f1f62a0ac9c4
>> 
>> Some Kotlin folks have created a pretty robust FP library using the same technique: http://kategory.io/.
>> 
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-evolution
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20171218/3dc04162/attachment.html>


More information about the swift-evolution mailing list