081201_llm3-mapreduce

# 081201_llm3-mapreduce - Distributed Computing Seminar...

This preview shows pages 1–10. Sign up to view the full content.

Distributed Computing Seminar MapReduce Theory and Implementation Summer 2007 Except as otherwise noted, the content of this presentation is (c) 2007 Google Inc. and licensed under the Creative Commons Attribution 3.0 License.

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
Outline ± Lisp/ML review ² functional programming ² map, fold ± MapReduce overview
Functional Programming Review ± Functional operations do not modify data structures: They always create new ones ± Original data still exists in unmodified form ± Data flows are implicit in program design ± Order of operations does not matter

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
Functional Programming Review fun foo(l: int list) = sum(l) + mul(l) + length(l) Order of sum() and mul(), etc does not matter – they do not modify l
Functional Updates Do Not Modify Structures fun append(x, lst) = let lst' = reverse lst in reverse ( x :: lst' ) The append() function above reverses a list, adds a new element to the front, and returns all of that, reversed, which appends an item. But it never modifies lst !

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
Functions Can Be Used As Arguments fun DoDouble(f, x) = f (f x) It does not matter what f does to its argument; DoDouble() will do it twice. What is the type of this function?
Map map f lst: (’a->’b) -> (’a list) -> (’b list) Creates a new list by applying f to each element of the input list; returns output in order. f

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
Fold fold f x 0 lst: ('a*'b->'b)->'b->('a list)->'b Moves across a list, applying f to each element plus an accumulator . f returns the next accumulator value, which is combined with the next element of the list
fold left vs. fold right ± Order of list elements can be significant

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
This is the end of the preview. Sign up to access the rest of the document.

## This note was uploaded on 04/05/2010 for the course CS 150 taught by Professor Humphreys,g during the Spring '08 term at UVA.

### Page1 / 30

081201_llm3-mapreduce - Distributed Computing Seminar...

This preview shows document pages 1 - 10. Sign up to view the full document.

View Full Document
Ask a homework question - tutors are online