[Swift-devel] Functional building blocks as concurrency patterns
Ben Clifford
benc at hawaga.org.uk
Sat Nov 29 16:45:32 CST 2008
This just appeared on lambda-the-ultimate:
http://lambda-the-ultimate.org/node/3108
> While teaching INGI1131, my concurrent programming course, I have become
> even more impressed by a concurrent paradigm, namely functional
> programming extended with threads and ports, which I call multi-agent
> dataflow programming.
Some ofthe concepts overlap or are closely related to SwiftScript and so
some of the discussion on that post is interesting to skim.
Some differences are that:
* we don't have infinite/unbounded streams of data because of the way that
our mappers work at the moment (though it conceptually fits in with
SwiftScript); and
* we don't have ports (or some other way of introducing non-determininism
in the language itself) - we do have something similar at the execution
layer, though, in the form of job replication, where we allow two job
submissions to race to start execution and only keep the one that starts
executing (some day it might be desirable to extend this to the one that
finishes first or some other more complex expression, but I don't see need
at the moment)
--
More information about the Swift-devel
mailing list