charon.py 文件源码

python
阅读 32 收藏 0 点赞 0 评论 0

项目:Charon 作者: forrestchang 项目源码 文件源码
def standard_env():
    import math
    import operator
    from functools import reduce
    env = Env()
    env.update(vars(math))
    env.update({'+': lambda *args: reduce(lambda x, y: x + y, args),
                '-': lambda *args: reduce(lambda x, y: x - y, args),
                '*': lambda *args: reduce(lambda x, y: x * y, args),
                '/': lambda *args: reduce(lambda x, y: x / y, args),
                '>': lambda x, y: x > y,
                '>=': lambda x, y: x >= y,
                '<': lambda x, y: x < y,
                '<=': lambda x, y: x <= y,
                '=': lambda x, y: x == y,
                'abs': abs,
                'append': lambda *args: reduce(lambda x, y: x + y, args),
                'begin': lambda *x: x[-1],
                'car': lambda x: x[0],
                'cdr': lambda x: x[1:],
                'cons': lambda x, y: [x] + y,
                'eq?': lambda x, y: isinstance(x, y),
                'equal?': lambda x, y: x == y,
                'length': len,
                'list': lambda *x: list(x),
                'list?': lambda x: isinstance(x, list),
                'map': map,
                'min': min,
                'max': max,
                'not': operator.not_,
                'null?': lambda x: x == [],
                'number?': lambda x: isinstance(x, Number),
                'procedure': callable,
                'round': round,
                'symbol': lambda x: isinstance(x, Symbol)
                })
    return env
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号