Études-Mathématique/Arguments listFold*

From Lazi wiki
Jump to: navigation, search

Question

Dans le lambda-calcul et en Haskell l'ordre des arguments de l'argument f dans les fold est inversé suivant le sens. Faut-il suivre cette usage ?

Étude

L'ordre d'usage est didactique car il correspond à l'opérateur associé à la fonction dans le développement du fold. Mais en pratique il faut réfléchir pour savoir quel ordre utiliser suivant que c'est un left ou un right.

D'autre part, suivant l'ordre de parcours il faut inverser les arguments. Si on utiliser les deux sens alors il faut changer les arguments. Par exemple si on voulait faire une fonction où le sens est un paramètre cela poserait problème.

La règle utilisée dans Lazi pour l'ordre des arguments est de placer les plus statiques en premier. Mais dans ce cas les deux arguments sont aussi dynamiques l'un que l'autre.

Réponse

On ne suit pas l'usage (voir l'étude). On utilise l'usage correspondant à foldl car la fonction est plus courante.