def test_foldr(self): summer = op.foldr(operator.add) self.assertEqual(10, op.foldr(operator.add)([0, 1, 2, 3, 4])) self.assertEqual(20, op.foldr(operator.add, 10)([0, 1, 2, 3, 4])) self.assertEqual(20, op.foldr(operator.add, 10)(iters.range(5))) # specific case for right-side folding self.assertEqual(100, op.foldr(op.call, 0)([lambda s: s ** 2, lambda k: k + 10]))
def test_foldr(self): summer = op.foldr(operator.add) self.assertEqual(10, op.foldr(operator.add)([0,1,2,3,4])) self.assertEqual(20, op.foldr(operator.add, 10)([0,1,2,3,4])) self.assertEqual(20, op.foldr(operator.add, 10)(iters.range(5))) # specific case for right-side folding self.assertEqual(100, op.foldr(op.call, 0)([lambda s: s**2, lambda k: k+10]))
def from_iterable(it): ''' iterable -> LinkedList produces LinkedList with the contents of the consumed iterable ''' return foldr(lambda x, y: y.cons(x), LinkedList())(tuple(it))
def foldr_dict_vals(f, d): return foldr(f)(list(d.values()))