On Monday, 25 August 2014 at 22:35:08 UTC, Dicebot wrote:
Don't have time to comment in details but wanted to warn about one thing : don't over-engineer. There is only limited value in a smart utility if its usage pattern can't be immediately recognized by a new developer.

Well, what I had in mind is more complex than `predSwitch`/`castSwitch`/`regexSwitch`, but not *that* complex. I want to support syntax like:

uint multiplyTuple(Tuple(int, int) operands){
    return operands.patternMatch!(
        (Constrainted!(uint, "==", 0), uint _) => 0,
        (Constrainted!(uint, "==", 1), uint b) => b,
        (a, uint b) => b + multiplyTuple(tuple(a - 1, b)),
    )();
}

Reply via email to