Beispiel #1
0
    def apply(self, expr, rules, evaluation):
        'Switch[expr_, rules___]'

        rules = rules.get_sequence()
        if len(rules) % 2 != 0:
            evaluation.message('Switch', 'argct', 'Switch', len(rules) + 1)
            return
        for pattern, value in zip(rules[::2], rules[1::2]):
            if match(expr, pattern, evaluation):
                return value.evaluate(evaluation)
Beispiel #2
0
    def apply(self, expr, rules, evaluation):
        'Switch[expr_, rules___]'

        rules = rules.get_sequence()
        if len(rules) % 2 != 0:
            evaluation.message('Switch', 'argct', 'Switch', len(rules) + 1)
            return
        for pattern, value in zip(rules[::2], rules[1::2]):
            if match(expr, pattern, evaluation):
                return value.evaluate(evaluation)