खोज…


परिचय

zipWithM है zipWith रूप mapM है map : यह आपको एक monadic समारोह का उपयोग कर दो सूचियां संयोजित करने देता है।

मॉड्यूल Control.Monad से। Control.Monad

वाक्य - विन्यास

  • zipWithM :: आवेदनकर्ता m => (a -> b -> mc) -> [a] -> [b] -> m [c]

बिक्री की कीमतों की गणना

मान लीजिए कि आप देखना चाहते हैं कि बिक्री मूल्य का एक निश्चित सेट किसी स्टोर के लिए समझ में आता है या नहीं।

मूल रूप से आइटम की कीमत $ 5 है, इसलिए आप बिक्री को स्वीकार नहीं करना चाहते हैं यदि बिक्री मूल्य उनमें से किसी के लिए कम है, लेकिन आप जानना चाहते हैं कि नई कीमत अन्यथा क्या है।

एक मूल्य की गणना करना आसान है: आप बिक्री मूल्य की गणना करते हैं, और लाभ Nothing पर Nothing लौटाते हैं:

calculateOne :: Double -> Double -> Maybe Double
calculateOne price percent = let newPrice = price*(percent/100)
                             in if newPrice < 5 then Nothing else Just newPrice

संपूर्ण बिक्री के लिए इसकी गणना करने के लिए, zipWithM इसे वास्तव में सरल बनाता है:

calculateAllPrices :: [Double] -> [Double] -> Maybe [Double]
calculateAllPrices prices percents = zipWithM calculateOne prices percents

यदि बिक्री मूल्य $ 5 से कम है तो यह Nothing भी Nothing लौटाएगा।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow