小编Bjö*_*ren的帖子

在Elm的绑定中是否容易陷入困境?

我有两个功能A和B,可以同时禁用,启用A,启用B,但不能同时启用.看完" 让不可能的国家变得不可能"后,我想尝试在类型级别上强制执行此操作.

我正在考虑的解决方案的简化版本如下.

module Main exposing (main)

import Browser
import Html exposing (Html, button, div, text)
import Html.Events exposing (onClick)

type Model
  = NoneEnabled
  | AEnabled
  | BEnabled

init : Model
init = NoneEnabled

type Msg
  = EnableA
  | DisableA
  | EnableB
  | DisableB

view : Model -> Html Msg
view model =
  let -- Buttons to enable and disable features
      buttons =
        div [] [ button [onClick EnableA] [text "Enable A"]
               , button [onClick DisableA] [text "Disable A"] …
Run Code Online (Sandbox Code Playgroud)

lazy-evaluation let elm

6
推荐指数
1
解决办法
117
查看次数

标签 统计

elm ×1

lazy-evaluation ×1

let ×1