User defined pipe and redirection operators: Difference between revisions

Content added Content deleted
(Pass each record on as soon AS available through each of the filter/procedure in the chain.)
(Remove speculation about coroutines in GNU C. The task might be implemented with coroutines, or without them.)
Line 15: Line 15:
'''Alternately:''' if the language does not support operator definition then replace with:
'''Alternately:''' if the language does not support operator definition then replace with:
* define the procedures: input(cmd,stream), pipe(stream,cmd), output(stream, stream), whereis(array), append(stream)
* define the procedures: input(cmd,stream), pipe(stream,cmd), output(stream, stream), whereis(array), append(stream)

Note: I estimate this alternative task can be done '''without''' using [http://www.chiark.greenend.org.uk/~sgtatham/coroutines.html Coroutines] in GNU C.


For bonus Kudos: Implement the shell "&" concept as a dyadic operator in the specific language. e.g.: <lang sh>( head x & tail x & wait ) | grep test</lang>
For bonus Kudos: Implement the shell "&" concept as a dyadic operator in the specific language. e.g.: <lang sh>( head x & tail x & wait ) | grep test</lang>