Hi Janis, thank you for sharing that library. I wasn't familiar with it and it exposes some useful functionality -- I'll definitely keep in mind!
On Wednesday, August 3, 2016 at 9:25:14 PM UTC-7, Janis Voigtländer wrote: > > Another possible take on your example: > > forecastProtected : Maybe Float -> Maybe Float -> Maybe Float -> (List Int) > -> List FloatforecastProtected q d b months = > case combine [q, d, b] of > Just [q, d, b] -> forecast q d b months > _ -> [] > > where combine is from > http://package.elm-lang.org/packages/elm-community/maybe-extra. > > > 2016-08-04 2:07 GMT+02:00 Austin B <[email protected] <javascript:>>: > >> Hey thank you! >> >> On Wednesday, August 3, 2016 at 4:51:55 PM UTC-7, Joey Eremondi wrote: >>> >>> The key here is to use the wildcard _ in your pattern matching, which >>> will match any value. >>> >>> You can also bundle your arguments in a tuple, without needing to use >>> records. >>> >>> forecastProtected : Maybe Float -> Maybe Float -> Maybe Float -> (List >>> Int) -> List Float >>> forecastProtected q d b months = >>> case (q, d, b) of >>> ( Just qF, Just dF, Just bF ) -> forecast qF dF bF months >>> _ -> [] >>> >>> Note also that your syntax was wrong in your case: Maybe is a type, not >>> a value, so you can never use it in a pattern match. You need to match >>> either against the constructors (Just, Nothing) or wildcards, or variables. >>> >>> On Wed, Aug 3, 2016 at 4:44 PM, Austin B <[email protected]> wrote: >>> >>>> I am trying to ensure that three arguments to a function are all not >>>> Nothing. >>>> >>>> Right now I have this (below), which works, but uses "withDefault." I >>>> want to avoid this because the default values are meaningless and I want >>>> to >>>> clearly and fundamentally avoid any possible situation where a Nothing >>>> gets >>>> through to the "else" part >>>> >>>> forecastProtected : Maybe Float -> Maybe Float -> Maybe Float -> (List >>>> Int) -> List Float >>>> forecastProtected q d b months = >>>> if List.any (\m -> m == Nothing) [q, e, b] then [] >>>> else >>>> forecast >>>> (withDefault 0 q) >>>> (withDefault 0 d) >>>> (withDefault 0 b) >>>> months >>>> >>>> >>>> I am hoping to do something like this: >>>> forecastProtected : Maybe Float -> Maybe Float -> Maybe Float -> (List >>>> Int) -> List Float >>>> forecastProtected q d b months = >>>> let >>>> params = {q = q, d = d, b = b} >>>> in >>>> case params of >>>> { Just qF, Just dF, Just bF } -> forecast qF dF bF months >>>> { Maybe, Maybe, Maybe } -> [] >>>> >>>> which more clearly shows what I am trying to achieve. Could someone >>>> point me to the appropriate syntax for this? Also the 'F' in qF, dF, and >>>> bF >>>> are "Float" to avoid masking of variables (not sure how this happens in >>>> elm); it would be best if I could avoid this complication too. >>>> >>>> Thanks everyone for all your help as I'm getting started! >>>> Austin >>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Elm Discuss" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "Elm Discuss" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > > -- You received this message because you are subscribed to the Google Groups "Elm Discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
