]> gitweb.michael.orlitzky.com - sage.d.git/blobdiff - mjo/misc.py
Add the 'product' function to misc.py.
[sage.d.git] / mjo / misc.py
index 28113b6473d871eb0cd3a9abb6b104be5df01a19..f5a7bcf124d50cbc7c97d2b6628ce391679cbda5 100644 (file)
@@ -3,6 +3,7 @@ Stuff that doesn't fit anywhere else.
 """
 
 from sage.all import *
+from functools import reduce
 
 def legend_latex(obj):
     """
@@ -11,3 +12,24 @@ def legend_latex(obj):
     legend label.
     """
     return '$%s$' % latex(obj)
+
+def product(factors):
+    """
+    Returns the product of the elements in the list `factors`. If the
+    list is empty, we return 1.
+
+    TESTS:
+
+    Normal integer multiplication::
+
+        sage: product([1,2,3])
+        6
+
+    And with symbolic variables::
+
+        sage: x,y,z = var('x,y,z')
+        sage: product([x,y,z])
+        x*y*z
+
+    """
+    return reduce(operator.mul, factors, 1)