def crawl_web(seed): # returns index, graph of outlinks tocrawl = [seed] crawled = [] graph = {} # <url>:[list of pages it links to] index = {} while tocrawl: page = tocrawl.pop() if page not in crawled: content = get_page(page) add_page_to_index(index, page, content) outlinks = get_all_links(content) graph[page] = outlinks union(tocrawl, outlinks) crawled.append(page) return index, graph
def ancestors(genealogy, person): if person in genealogy: parents = genealogy[person] result = parents for parent in parents: result = result + ancestors(genealogy, parent) return result return []
Blaise Pascal Triangle
def make_next_row(row): result = [] prev = 0 for e in row: result.append(e + prev) prev = e result.append(prev) return result def triangle(n): result = [] current = [1] for unused in range(0, n): result.append(current) current = make_next_row(current) return result