コード例 #1
0
ファイル: conditional.py プロジェクト: wangfuli217/study
def expand_clauses(clauses):
    if clauses is EmptyList:
        return Boolean(False)

    first = car(clauses)
    rest = cdr(clauses)

    if is_cond_else_clause(first):
        if rest is EmptyList:
            return sequence_expr(cond_actions(first))
        else:
            raise ValueError('ELSE caluse isn\'t last: %s' % clauses)
    else:
        return make_if(cond_predicate(first), 
                sequence_expr(cond_actions(first)), expand_clauses(rest))
コード例 #2
0
def first_operand(ops):
    return car(ops)
コード例 #3
0
def operator(expr):
    return car(expr)
コード例 #4
0
def first_expr(seq):
    return car(seq)
コード例 #5
0
ファイル: conditional.py プロジェクト: wangfuli217/study
def cond_predicate(clause):
    return car(clause)
コード例 #6
0
ファイル: sequence.py プロジェクト: wangfuli217/study
def first_expr(seq):
    return car(seq)