diff --git a/Main.hs b/Main.hs new file mode 100755 index 0000000..3d605ef --- /dev/null +++ b/Main.hs @@ -0,0 +1,31 @@ +#!/usr/bin/env runhaskell + +import RecipeCost + +-- * Example (in french for now) +eau = Ingredient "Eau" 0.003 +savonMarseille = Ingredient "Savon de Marseille" 3.36 +bicarbonate = Ingredient "Bicarbonate de soude" 3.81 +vinaigreBlanc = Ingredient "Vinaigre blanc" 0.36 + +lessive :: Recipe +lessive = Recipe "Lessive" + [ eau → 2.5 + , savonMarseille → 0.1 + , bicarbonate → 0.016 + , vinaigreBlanc → 0.03 + ] + 2.5 + 30 + +main = do + putStrLn "Calcul du coût des recettes\n" + putStrLn "* Lessive :" + print lessive + let lessiveTotalCost = recipeCost lessive + lessiveUnitCost = unitCost lessive lessiveTotalCost + lessiveUseCost = useCost lessive lessiveTotalCost + putStrLn $ " * Prix Total = " ++ show lessiveTotalCost ++ "€" + putStrLn $ " * Prix au litre = " ++ show lessiveUnitCost ++ "€" + putStrLn $ " * Prix par utilisation = " ++ show lessiveUseCost ++ "€" + diff --git a/cout-recette.hs b/RecipeCost.hs similarity index 51% rename from cout-recette.hs rename to RecipeCost.hs index 693ae7a..762772f 100755 --- a/cout-recette.hs +++ b/RecipeCost.hs @@ -1,4 +1,4 @@ -#! /usr/bin/env runhaskell +module RecipeCost where -- * Data types definition data Ingredient = Ingredient { ingredientName :: String @@ -28,31 +28,3 @@ useCost (Recipe _ _ _ uses) totalCost = totalCost / uses (→) :: Ingredient -> Double -> UsedIngredient (→) ingredient qtt = UsedIngredient ingredient qtt - --- * Example (in french for now) -eau = Ingredient "Eau" 0.003 -savonMarseille = Ingredient "Savon de Marseille" 3.36 -bicarbonate = Ingredient "Bicarbonate de soude" 3.81 -vinaigreBlanc = Ingredient "Vinaigre blanc" 0.36 - -lessive :: Recipe -lessive = Recipe "Lessive" - [ eau → 2.5 - , savonMarseille → 0.1 - , bicarbonate → 0.016 - , vinaigreBlanc → 0.03 - ] - 2.5 - 30 - -main = do - putStrLn "Calcul du coût des recettes\n" - putStrLn "* Lessive :" - print lessive - let lessiveTotalCost = recipeCost lessive - lessiveUnitCost = unitCost lessive lessiveTotalCost - lessiveUseCost = useCost lessive lessiveTotalCost - putStrLn $ " * Prix Total = " ++ show lessiveTotalCost ++ "€" - putStrLn $ " * Prix au litre = " ++ show lessiveUnitCost ++ "€" - putStrLn $ " * Prix par utilisation = " ++ show lessiveUseCost ++ "€" -