Je suis un peu novice dans FP et Haskell et j'essaie de résoudre des tâches triviales. Par exemple, nous avons gamme de produits:Solution de programmation fonctionnelle
data Product = Product String Int
let apple = Product "Apple" 15
let pineapple = Product "Pineapple" 20
let products = [apple, pineapple]
Les tâches:
- calculer le prix total des produits (ce qui est simple, par exemple, je peux utiliser foldl)
- calculer le prix total si chaque troisième pomme a un rabais 0.5
- calculer le prix total si l'ananas est libre en cas d'achat de deux pommes.
Dans la programmation impérative traditionnelle, ceci est assez simple, par exemple je peux utiliser différentes stratégies de calcul pour cela. Comment puis-je résoudre cela dans Haskell? Devrais-je utiliser la monade d'État ou existe-t-il d'autres solutions? Pourriez-vous s'il vous plaît fournir quelques étapes ou code d'algorithme?
À moins que le prix d'un ananas/pomme ne puisse changer, aucun d'entre eux n'a même besoin de 'State' - juste filtrer votre liste de produits pour obtenir le compte de toutes les pommes ou ananas. Ensuite, il revient à l'arithmétique sur ces deux chiffres. – Alec