public decimal BinaryChain(BinaryChain binaryChain) { var accumulator = this.Visit(binaryChain.Head); foreach (var item in binaryChain.Tail) { accumulator = _operators[item.op](accumulator, this.Visit(item.rhs)); } return(accumulator); }
public string BinaryChain(BinaryChain binaryChain) { var head = this.Visit(binaryChain.Head); return(binaryChain.Tail.Aggregate(head, (previous, item) => $"({previous} {item.op} {this.Visit(item.rhs)})")); }