Hi Janis,
Thanks for the explanation. Would you do something like that or you'd
rather pass the defaultModel into the function?
createModelWithProp1Something model: Model
createModelWithProp1Something =
{ model | prop1 = "Something" }
-- Somewhere else
let
myModelWithSomething = createModelWithProp1Something defaultModel
in
-- ...
I guess, based on your answer, both are correct
Thanks,
Fran
On Friday, August 26, 2016 at 9:10:59 AM UTC+2, Janis Voigtländer wrote:
>
> What you are doing there is absolutely fine. Functional programming is
> about values and functions. In your example you define some values based on
> other values (without modifying the original values, of course). No reason
> to feel “that it goes against pure functions”. It does not.
>
>
> 2016-08-26 8:55 GMT+02:00 Francisco Ramos <[email protected]
> <javascript:>>:
>
>> Hi there,
>>
>> I'm fairly new in Functional Programming and Elm language and I was
>> hoping someone could tell me if what I'm doing is correct or it goes
>> against Elm and its pure functions. I have a model, defaultModel, with some
>> values by default. I have a couple functions that create a new model using
>> defaultModel as a template, but I'm not passing this model, which makes me
>> doubt about the correct use of pure functions. Let's have a look at this
>> with an example:
>>
>> type alias Model =
>> { prop1 : String
>> , prop2 : Int
>> , prop3 : Bool
>> }
>>
>> defaultModel : Model
>> defaultModel =
>> { prop1 = "Test"
>> , prop2 = 5
>> , prop3 = True
>> }
>>
>>
>>
>> createModelWithProp1Something : Model
>> createModelWithProp1Something =
>> { defaultModel | prop1 = "Something" }
>>
>>
>> createModelWithProp2Ten : Model
>> createModelWithProp2Ten =
>> { defaultModel | prop2 = 10 }
>>
>> createModelWithProp3False : Model
>> createModelWithProp3False =
>> { defaultModel | prop3 = False }
>>
>> So the question is, is it correct to use this defaultModel inside these
>> functions without passing it in?, If it's not, could anyone explain me
>> why?. I have the feeling that it goes against pure functions, but I'm
>> thinking, defaultModel won't ever be mutated, so no risk of side effects.
>>
>> Thanks a lot in advance
>>
>> Fran
>>
>> --
>> 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.