public static Transform <Unit> Compute(ComputeOperation op) { var sourceType = from expr in Parse(op.SourceType) from type in op.Operator == "Expression" ? from value in Compile <object>(expr) select new ValueSourceType(value) as SourceType : from rows in FilterRowsBy(expr) select new RowsSourceType(rows) as SourceType select type; return(from type in sourceType from compute in new Transform <Unit> .Compute(op, type, Return) select compute); }
public Compute(ComputeOperation operation, SourceType sourceType, Func <Unit, Transform <A> > next) { Operation = operation; SourceType = sourceType; Next = next; }
static void Main(string[] args) { IComputeOperation operation = new ComputeOperation(); operation.Compute(100); }