Ok, so you can now do this:
(s1, s2) |-> (t1,t2)
This can be used to:
(a) connect two sources to two transducers to make two new sources
(b) connect two pairs of transducers to get a new pair or transducers
(c) connect two transducers to two sinks to get two sinks
(d) connect two sources to two sinks to get a SINGLE pipeline
I expect |-> and , to obey a distributive law:
(a,b) |-> (c,d) === (a |-> c, b |-> d)
In other words, joining two things in parallel is the same as joining
them separately then pairing them up.
The exception is (d) which makes a single pipeline.
Still sorting out details.
This works:
/////////////////////////
var s1, s2 = tee (src, xduce 1, xduce 2);
//spawn_fthread$ s1 |-> sink;
//spawn_fthread$ s2 |-> sink;
spawn_fthread$ (s1,s2) |-> (sink,sink);
///////////////////////////
Please note that uncommenting the two individual pipeline
runs causes the parallel pipeline to fail (well it does nothing).
Sources are intrinsically non-reusable.
Anyhow the idea here is that with tee you can do this:
s1 |-> tee |-> ( pipline1, pipeline2) ;
Since each nested pipeline can also have tees in it,
we have a tree (binary tree anyhow).
--
john skaller
[email protected]
http://felix-lang.org
------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
Felix-language mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/felix-language