Contexte:ternaires (! Et plus) de surcharge __add__ en Python
En tant que projet d'apprentissage personnel que je travaille sur un simple système d'algèbre informatique. J'ai une classe polynomiale univariée où les coefficients des termes sont stockés en tant que dictionnaire. L'opérateur surchargeant la somme de deux polynômes A et B implique de trouver les termes similaires, de les ajouter et de créer un nouveau terme pour les termes dans A ou B mais pas les deux (XOR). Cela fonctionne comme prévu, mais ...
Question:
J'ai remarqué quand je voulais ajouter plus de deux polynômes le processus est lent car il y a un calcul commun qui pourrait être fait en même temps. Par exemple, avec quatre polynômes (A, B, C, D) la somme:
A + B + C + D
est évaluée comme suit:
((A+B) + C) + D
en d'autres termes:
add(add(add(A,B),C),D)
Pourriez-je écrire une surcharge spéciale de la fonction add qui serait appelée quand il y a plusieurs sommations?
add(A,B,C,D)
Est-ce que cela s'appelle quelque chose? J'aimerais regarder quelques exemples de roues avant de réinventer la mienne. Ma conjecture est une sorte d'évaluation paresseuse, mais c'est un concept général pour être utile dans une recherche. – Hooked
@Hooked: Il est fondamentalement juste évaluation paresseuse. Je suis désolé, mais je n'ai pas de bons exemples en main - je pense que votre meilleur pari serait de voir comment un langage paresseux comme Haskell est mis en œuvre sous le capot. –