+1 -Thorsten
> Am 18.12.2017 um 08:42 schrieb Elviro Rocca via swift-evolution > <swift-evolution@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@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@swift.org >> https://lists.swift.org/mailman/listinfo/swift-evolution > > _______________________________________________ > swift-evolution mailing list > swift-evolution@swift.org > https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution