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.

Reply via email to