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
skal...@users.sourceforge.net
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
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to