__main__.py 文件源码

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

项目:biglambda_hadoop 作者: henry8527 项目源码 文件源码
def explore_frontier(sig, data_type, metric, max_size):
    # closure for binding sig and rules easily
    expand = producers.generate_expander(sig)
    # generate appropriate starting node based on type
    start_node = producers.e.Un(producers.parse_type(data_type))
    frontier = [(metric(start_node), start_node)]
    # go hog wild
    while True:
        # pull expression off heap, check expansions
        m, expr = heapq.heappop(frontier)
        expansions = expand(expr)
        # if there are expansions, just add them back in
        if expansions:
            for new_expr in expansions:
                heapq.heappush(frontier, (metric(new_expr), new_expr) )
        # if there aren't any expansions and the program is closed, we're done
        elif len(expr._values_from_kind("un")) == 0:
            yield m[0], expr

#------------------------------------------------------------------------------
# now we treat this module as a script - time to execute!
#------------------------------------------------------------------------------
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号