Next: loops comprehensions search, Previous: loops comprehensions vector, Up: loops comprehensions [Index]
The sum of all values of expression. Think of it as:
(apply + (list-ec ?qualifier ... expression))
Examples:
(sum-ec ;no qualifiers 1) ⇒ 1 (sum-ec (:range i 0) i) ⇒ 0 (sum-ec (:range i 1) i) ⇒ 0 (sum-ec (:range i 2) i) ⇒ 1 (sum-ec (:range i 3) i) ⇒ 3
The product of all values of expression. Think of it as:
(apply * (list-ec ?qualifier ... expression))
Examples:
(product-ec ;no qualifiers 1) ⇒ 1 (product-ec (:range i 1 0) ;i from 1 to 1 i) ⇒ 1 (product-ec (:range i 1 1) ;loop zero times i) ⇒ 1 (product-ec (:range i 9 9) ;loop zero times i) ⇒ 1 (product-ec (:range i 1 2) ;i from 1 to 1 i) ⇒ 1 (product-ec (:range i 1 3) ;i from 1 to 2 i) ⇒ 2 (product-ec (:range i 1 4) ;i from 1 to 3 i) ⇒ 6
The minimum and maximum of all values of expression. The sequence of values must be non-empty. Think of these as
(apply min (list-ec ?qualifier ... expression)) (apply max (list-ec ?qualifier ... expression))
If we want to return a default value in case the sequence is empty we may want to consider:
(fold3-ec 'infinity ?qualifier ... expression min min)