(first (filter identity [(and (condition-three) (action-three)) (and (condition-one) (action-one)) (and (condition-four) (action-four)) (and (condition-two) (action-two))]))
You probably wouldn't want to most of the time, but if the conditions are slow to test but otherwise inexpensive, it might be a useful optimization.
You probably wouldn't want to most of the time, but if the conditions are slow to test but otherwise inexpensive, it might be a useful optimization.