[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