Les fonctions array_map, array_filter et array_reduce sont disponibles depuis longtemps en PHP. Pourtant, mesure-t-on vraiment l’intérêt de cette façon de programmer par rapport aux bonnes vieilles boucles qui marchent très bien ? Pourquoi la trouve-t-on associée à Google, Apache Hadoop, ou encore Java 8 ? Je vous propose d’abord de voir que cette approche donne du code clair, focalisé sur la description de l’algorithme plutôt que sur l’implémentation, et qu’elle se combine très bien avec les notions de curryfication et de composition, également issues de la programmation fonctionnelle. Ce sera l’occasion de constater que si PHP7 a facilité l’usage de ces deux concepts, il lui reste encore une marge de progression. Enfin, la démonstration d’une implémentation parallèle 100% PHP de map, filter et reduce, exploitant un processeur multicœur, illustrera le gain de performances que l’on peut en attendre.

Comments

Comments are closed.