[swift-evolution] Support Transducers
Matthew Johnson
matthew at anandabits.com
Fri Dec 25 13:15:07 CST 2015
Sent from my iPad
> On Dec 25, 2015, at 11:53 AM, Dmitri Gribenko via swift-evolution <swift-evolution at swift.org> wrote:
>
> On Fri, Dec 25, 2015 at 9:07 AM, Jason Jobe via swift-evolution
> <swift-evolution at swift.org> wrote:
>>
>> Okay,
>>
>> I would like to propose that Transducers be considered for addition to the Swift core.
>>
>> "Transducers are a powerful and composable way to build algorithmic transformations that you can reuse in many contexts…"
>>
>> There are ways to build them w/out any language modification but they are not as efficient as alternative expressions.
>
> Hi Jason,
>
> I was playing with a similar idea here:
>
> https://github.com/apple/swift/blob/master/test/Prototypes/CollectionTransformers.swift
>
> You wouldn't find the word 'transducer' there, but it is based on
> similar principles, except it also allows you to optimize the AST of
> the transformation, and it is structured in such a way that would
> allow us to automatically parallelize the whole pipeline.
>
It's great to see you experimenting with this!
It's unrelated but one comment in there jumped out at me:
// As sad as it is, I think for practical performance reasons we should rewrite
// the inner parts of the fork-join framework in C++. In way too many cases
// than necessary Swift requires an extra allocation to pin objects in memory
// for safe multithreaded access. -Dmitri
I agree this is sad, but also hope it is only a temporary situation (as with other performance related concerns). Any thoughts on that?
> Dmitri
>
> --
> main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if
> (j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr at gmail.com>*/
> _______________________________________________
> 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/20151225/da4e5728/attachment.html>
More information about the swift-evolution
mailing list