Чтобы использовать Up
и Down
с оператором +
, они должны быть значениями, а не типами - значениями того же типа, что и другой операнд. Поэтому вместо этого определите их как константы типа Int
:
up : Int
up = 1
down : Int
down = -1
Затем вы можете написать свою update
функцию как:
update : Msg -> Model -> Model
update msg model =
case msg of
Go Up ->
{ model | pos = model.pos + up }
Go Down ->
{ model | pos = model.pos + down }
Полный рабочий код см. это Ell ie. Единственное другое изменение, которое я сделал, было для ваших кнопок onClick
- это должно быть onClick <| Go Up
, чтобы сообщить компилятору, что Up
является аргументом Go
, а результат - аргументом onClick
.