Haskell Language
zipWithM
수색…
소개
zipWithM
이다 zipWith
로 mapM
하는 것입니다 map
: 그것은 당신이 모나드 함수를 사용하여 두 목록을 결합 할 수 있습니다.
Control.Monad
모듈에서
통사론
- zipWithM :: 적용 m => (a -> b -> mc) -> [a] -> [b] -> m [c]
판매 가격 계산
특정 판매 가격 세트가 상점에 적합한지를보고 싶다고 가정 해보십시오.
항목의 원래 가격은 5 달러입니다. 판매 가격이 그보다 낮 으면 판매를 받아들이지 않으려하지만, 그렇지 않은 경우 새로운 가격이 무엇인지 알아야합니다.
하나의 가격을 계산하는 것은 쉽습니다. 판매 가격을 계산하고 이익을 얻지 못하면 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
을 반환합니다.
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow