|
@@ -0,0 +1,33 @@
|
|
|
+-module(ebb_prim).
|
|
|
+-include("../include/ebb_prim.hrl").
|
|
|
+-include("../include/ebb_pipe.hrl").
|
|
|
+-export([task/2, task/1, return/1,
|
|
|
+ func/1, app/2, dynamic/1,
|
|
|
+ ignore/1, nop/0, id/0]).
|
|
|
+
|
|
|
+task(Func, Arg) ->
|
|
|
+ apply(func(Func), Arg).
|
|
|
+
|
|
|
+task(Thunk) ->
|
|
|
+ #thunk{code=Thunk}.
|
|
|
+
|
|
|
+return(Val) ->
|
|
|
+ #return{val=Val}.
|
|
|
+
|
|
|
+func(Func) ->
|
|
|
+ #func{code=Func}.
|
|
|
+
|
|
|
+app(Op, Arg) ->
|
|
|
+ #feed{task=return(Arg), op=Op}.
|
|
|
+
|
|
|
+dynamic(FuncT) ->
|
|
|
+ #dynamic{code=FuncT}.
|
|
|
+
|
|
|
+ignore(Task) ->
|
|
|
+ dynamic(fun(_) -> Task end).
|
|
|
+
|
|
|
+nop() ->
|
|
|
+ #return{val='nop'}.
|
|
|
+
|
|
|
+id() ->
|
|
|
+ #pipe{ops=[]}.
|