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]>:
> 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].
> 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.