Content deleted Content added
m Fix link |
simplify |
||
(7 intermediate revisions by 6 users not shown) | |||
Line 1:
{{Short description|Concepts in statistics and computer science}}
An '''Aggregate pattern''' can refer to concepts in either statistics or computer programming. Both uses deal with considering a large case as composed of smaller, simpler, pieces.▼
{{one source |date=March 2024}}
▲An '''Aggregate pattern''' can refer to concepts in either statistics or computer programming. Both uses
== Statistics ==
Line 6 ⟶ 8:
== Computer programming ==
In ''[[Design Patterns]]'', an aggregate is not a [[Software design pattern|design pattern]] but rather refers to an object such as a list, vector, or generator which provides an interface for creating [[iterator]]s. The following example code is in [[Python (programming language)|Python]].
<
def fibonacci(n: int):
a, b = 0, 1
count = 0
while count < n:
count += 1
a, b = b, a + b
yield a
for x in fibonacci(10):
print
def fibsum(n: int) -> int:
total = 0
for x in fibonacci(n):
Line 25 ⟶ 27:
return total
def fibsum_alt(n: int) -> int:
"""
Alternate implementation. demonstration that Python's built-in function sum()
Line 32 ⟶ 34:
return sum(fibonacci(n))
myNumbers = [1, 7, 4, 3, 22]
def average(g) -> float:
return float(sum(g)) / len(g) # In Python 3 the cast to float
</syntaxhighlight>
Python hides essentially all of the details using the [https://docs.python.org/3/library/stdtypes.html#iterator-types iterator protocol]. Confusingly, ''[[Design Patterns]]'' uses "aggregate" to refer to the blank in the code <code>for x in ___:</code> which is unrelated to the term "aggregation".<ref>[[Design Patterns]], p. 22: "Aggregation implies that one object owns or is responsible for another object. ... Aggregation implies that an aggregate object and its owner have identical lifetimes."</ref> Neither of these terms refer to the statistical aggregation of data such as the act of adding up the Fibonacci sequence or taking the average of a list of numbers.
== See also ==
Line 49 ⟶ 51:
{{Reflist}}
[[Category:Software design patterns]]
[[Category:Articles with example Python (programming language) code]]
|