:lambda: calculus

Yeah. That's not your weakness but ours; it's because Snap! uses applicative order evaluation. So you have to make the 2nd and 3rd inputs type Any (Unevaluated) and then CALL whichever one is chosen by the first input.

Ooh!Lambda Calculus!!!