Solusi dengan menggunakan pengurangan :
from functools import reduce
f = lambda x: f"f({x})"
g = lambda x: f"g({x})"
data = [1, 2, 3]
reduce(lambda acc, x: acc + [f(x), g(x)], data, [])
Meskipun bukan pemahaman daftar, ini adalah cara fungsional untuk mendekati masalah. Pemahaman daftar pada dasarnya adalah cara lain untuk map
mengolah data, tetapi dalam kasus ini di mana pemetaan tidak satu lawan satu antara masukan dan keluaran, reduce
memungkinkan beberapa ruang gerak dengan bagaimana keluaran dapat dihasilkan.
Secara umum, setiap for
implementasi bentuk:
result = []
for n in some_data:
result += some_operation()
(Yaitu untuk loop yang dimaksudkan untuk menghasilkan efek samping pada daftar atau struktur data serupa)
Dapat direfraktorisasi menjadi map/reduce/filter
implementasi deklaratif .