過往我們會用迴圈迭代物件集合,現代語言則提供集合流程(Collection Pipeline)來改善處理:
裡面每項操作(像 mapfilter)都接收與送出一個集合,讓人從上而下地了解物件流經步驟。

Replace Loop with Pipeline

flowchart LR
    subgraph pipeline ["Collection Pipeline"]
        direction LR
        A["[1,2,3,4,5]"] --> B["filter<br/>(偶數)"]
        B --> C["[2,4]"]
        C --> D["map<br/>(平方)"]
        D --> E["[4,16]"]
    end
# Before
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_squares = []
for number in numbers:
    if number % 2 == 0:
        even_squares.append(number * number)
print(f"Even squares: {even_squares}")

# After
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_squares = [number * number for number in numbers if number % 2 == 0]
print(f"Even squares: {even_squares}")