Your particular example can be rewritten easily to not use functions (and
with even less duplication):
type Msg
= Add Int
view model =
div []
[ button [ onClick (Add -1) ] [ text "-" ]
, div [] [ text (toString model) ]
, button [ onClick (Add 1) ] [ text "+" ]
]
update msg model =
case msg of
Add delta ->
model + delta
On Tue, Jan 17, 2017 at 11:31 PM, Nick H <[email protected]> wrote:
> I would come down on the side of very very wrong. Functions can't be
> converted into strings, and they can't be checked for equality. So if you
> need to debug your program (say, with the interactive debugger), There is
> no way to examine the data being passed in your commands.
>
>
> On Tue, Jan 17, 2017 at 7:24 PM, Marshall handheld Flax <
> [email protected]> wrote:
>
>> Is it wrong for Cmds to contain functions (as opposed to data within
>> constructors)? If it is a reasonable practice, it would allow for more
>> functional component-like modules, but does this violate the Elm
>> architecture? If it does, is it explicitly mentioned in the docs -- I
>> don't remember seeing it. Here's http://elm-lang.org/examples/buttons
>> rewritten in the Cmd-contains-functions style. Thank you!
>>
>> module Main exposing (..)
>>
>> import Html exposing (beginnerProgram, div, button, text)
>> import Html.Events exposing (onClick)
>>
>> main =
>> beginnerProgram { model = 0, view = view, update = update }
>>
>> type Msg
>> = Transform (Int -> Int)
>>
>> view model =
>> div []
>> [ button [ onClick (Transform ((+) -1)) ] [ text "-" ]
>> , div [] [ text (toString model) ]
>> , button [ onClick (Transform ((+) 1)) ] [ text "+" ]
>> ]
>>
>> update msg model =
>> case msg of
>> Transform xform ->
>> xform model
>>
>>
>> --
>> 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.