Skip to content

Commit 147d4a4

Browse files
committed
Add initial value for product and sum on L
1 parent 44fe982 commit 147d4a4

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

fastcore/foundation.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,8 +186,8 @@ def shuffle(self):
186186

187187
def concat(self): return self._new(itertools.chain.from_iterable(self.map(L)))
188188
def reduce(self, f, initial=None): return reduce(f, self) if initial is None else reduce(f, self, initial)
189-
def sum(self): return self.reduce(operator.add)
190-
def product(self): return self.reduce(operator.mul)
189+
def sum(self): return self.reduce(operator.add, 0)
190+
def product(self): return self.reduce(operator.mul, 1)
191191
def setattrs(self, attr, val): [setattr(o,attr,val) for o in self]
192192

193193
# Cell

nbs/02_foundation.ipynb

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -634,8 +634,8 @@
634634
"\n",
635635
" def concat(self): return self._new(itertools.chain.from_iterable(self.map(L)))\n",
636636
" def reduce(self, f, initial=None): return reduce(f, self) if initial is None else reduce(f, self, initial)\n",
637-
" def sum(self): return self.reduce(operator.add)\n",
638-
" def product(self): return self.reduce(operator.mul)\n",
637+
" def sum(self): return self.reduce(operator.add, 0)\n",
638+
" def product(self): return self.reduce(operator.mul, 1)\n",
639639
" def setattrs(self, attr, val): [setattr(o,attr,val) for o in self]"
640640
]
641641
},
@@ -883,6 +883,16 @@
883883
"test_shuffled(t,t.shuffle())"
884884
]
885885
},
886+
{
887+
"cell_type": "code",
888+
"execution_count": null,
889+
"metadata": {},
890+
"outputs": [],
891+
"source": [
892+
"test_eq(L([]).sum(), 0)\n",
893+
"test_eq(L([]).product(), 1)"
894+
]
895+
},
886896
{
887897
"cell_type": "code",
888898
"execution_count": null,

0 commit comments

Comments
 (0)