# If there's only one item in the sequence, its value is returned; if the sequence is  
# empty, an exception is raised. 
 
 
# A third argument can be passed to indicate the starting value. In this case the  
# starting value is returned for an empty sequence, and the function is first applied  
# to the starting value and the first sequence item, then to the result and the next  
# item, and so on. For example, 
 
def sum(seq): 
     def add(x,y): return x+y 
     return reduce(add, seq, 0) 
  
print sum(range(1, 11)) 
 
print sum([]) 
 
            
       
  |