Coming from react, I am learning to understand Elm.
In the Todomvc example code, there is the following code snippet:
-- How we update our Model on a given Msg?
update : Msg -> Model -> ( Model, Cmd Msg )
update msg model =
case msg of
NoOp ->
model ! [] <-- What is this?
What I (think I) understand, is that the update
function takes in a msg
of type Msg
and a model
of type Model
, and returns a tuple of containing a Model
and a Cmd Msg
.
But how should I read the return statement?
model ! []
What does this statement mean? return a "model [something] empty list"?
Did I miss something in the docs where this is explained? (Googling "elm !" did not get me far :)
Update for Elm 0.19
Elm 0.19 has removed the exclamation point operator. You must now construct the tuple manually, as in (model, Cmd.none)
.
Original Answer for Elm 0.18
The exclamation point in model ! []
is just a short-hand function for (model, Cmd.batch [])
, which is the type returned from typical update
statements. It is defined here
Note that this syntax is going away in the next version of Elm (0.19) so don't get into the habit of using it ;-)
You can use today, and with 0.19:
update : Msg -> Model -> ( Model, Cmd Msg )
update msg model =
case msg of
NoOp ->
(model, Cmd.none)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With