protected override Result CallMe(BinaryOp op, Result left) { return(left switch { ResultColumn resultColumn => new ResultColumn(new ValueList( resultColumn.Column.Zip(Column).Select(pair => op(pair.First, pair.Second)).ToList(), ElementType)), ResultSingle resultSingle => new ResultColumn( new ValueList(Column.Select(v => op(resultSingle.Value, v)).ToList(), ElementType)), _ => throw new NotSupportedException($"Cannot do BinaryOp on ResultColumn and {left}") });
public abstract Result BinaryOperationTyped(BinaryOp op, ResultSingle right);
public override Result BinaryOperationTyped(BinaryOp op, ResultSingle right) { return(new ResultColumn(new ValueList(Column.Select(v => op(v, right.Value)).ToList(), ElementType))); }