¿Qué hace "! [] "Sintaxis de código Elm en Todomvc media


Viniendo de react, estoy aprendiendo a entender Elm.

En el código de ejemplo Todomvc , hay el siguiente fragmento de código:

-- 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?

Lo que yo (creo que yo) entiendo, es que la función update toma a msg de tipo Msg y a model de tipo Model, y devuelve una tupla que contiene a Model y a Cmd Msg.

Pero ¿cómo debo leer la declaración de devolución?

model ! []

¿Qué significa esta declaración? devolver un "modelo [algo] lista vacía"?
Lo hice ¿te perdiste algo en los documentos donde se explica esto? (Googleando " elm !"no me llevó lejos:)

 47
elm
Author: wintvelt, 2016-05-26

2 answers

Actualización para Elm 0.19

Elm 0.19 ha eliminado el operador de signo de exclamación. Ahora debe construir la tupla manualmente, como en (model, Cmd.none).

Respuesta original para Elm 0.18

El signo de exclamación en model ! [] es solo una función de mano corta para (model, Cmd.batch []), que es el tipo devuelto por las sentencias típicas update. Se define aquí

 52
Author: Chad Gilbert,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-22 11:18:23

Tenga en cuenta que esta sintaxis desaparecerá en la próxima versión de Elm (0.19), así que no se acostumbre a usarla; -)

Se puede utilizar hoy, y con 0.19:

update : Msg -> Model -> ( Model, Cmd Msg )
update msg model =
  case msg of
    NoOp ->
      (model, Cmd.none)
 5
Author: Simon H,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-24 11:56:50