Dans les langages fonctionnels, il existe des fonctions telles que foldr et foldl qui effectuent un traitement qui réduit une sorte de tableau. Donc, récemment, je me suis demandé s'il y avait une implémentation similaire en Python, mais j'ai réalisé qu'il y avait quelque chose appelé reduse.
Par exemple, si vous voulez garantir que tout est vrai dans un tableau composé uniquement de booléens, si vous n'utilisez pas de reduse, vous pouvez vous retrouver avec le style d'écriture sale suivant.
python
def check_all_true(check_array):
result = True
for elem in check_array:
result = result and elem
return result
if __name__ == '__main__':
print check_all_true([True, True, True])
print check_all_true([True, False, True])
Si vous réécrivez ceci pour réduire, cela aura l'air rafraîchissant comme ci-dessous.
python
def check_all_true(check_array):
return reduce(lambda prev, nxt: prev and nxt, check_array)
if __name__ == '__main__':
print check_all_true([True, True, True])
print check_all_true([True, False, True])
Cependant, la substance de réduire semble être pliable, donc si vous voulez fonctionner comme un foldr, vous devez en concevoir un peu.
Recommended Posts