也许是Elm,默认情况下

也许是Elm,默认情况下,elm,Elm,我需要在我的一个更新函数中打开Maybe-value: update msg model = case msg of UpdateMainContent val -> Maybe.withDefault 100 (Just 42) model 这当然是伪代码和 Maybe.withDefault 100 (Just 42) 被直接带出,不应该做任何事情。编译器抱怨说: Detected errors in 1 module. -- TYPE

我需要在我的一个更新函数中打开Maybe-value:

update msg model =

  case msg of

    UpdateMainContent val ->
      Maybe.withDefault 100 (Just 42)
      model
这当然是伪代码和

 Maybe.withDefault 100 (Just 42)
被直接带出,不应该做任何事情。编译器抱怨说:

Detected errors in 1 module.


-- TYPE MISMATCH ----------------------------------- ./src/Review/Form/State.elm

The 1st argument to function `withDefault` is causing a mismatch.

15|>             Maybe.withDefault 100 (Just 42))
16|             -- Maybe.withDefault 100 (model.activeItem)
17|             model

Function `withDefault` is expecting the 1st argument to be:

    a -> b

But it is:

    number
为什么说“withDefault”期望第一个参数是

a -> b
当它被定义为

a -> Maybe a -> a

在文档中?

您意外地将其留在
模型中:

UpdateMainContent val ->
  Maybe.withDefault 100 (Just 42)
  model --  <-- here

这将评估为1

您不小心离开了
车型

UpdateMainContent val ->
  Maybe.withDefault 100 (Just 42)
  model --  <-- here

这将评估为1

看起来您的代码中有一些奇怪的语法错误,编译器无法识别它。尝试包装
(可能是默认值100(仅42))
或将更多代码添加到示例中。@halfzebra给出了完全相同的错误。我不想粘贴完整的代码路径,因为它是大的、嵌套的和模块化的,这会使问题变得有点具体。然而,我可以说“val”只是一个简单的字符串。那么你的意思是,我可以在上面的代码之外有一个语法错误导致这个错误?我试着澄清一下我的问题。看起来你的代码中有一些奇怪的语法错误,编译器无法识别它。尝试包装
(可能是默认值100(仅42))
或将更多代码添加到示例中。@halfzebra给出了完全相同的错误。我不想粘贴完整的代码路径,因为它是大的、嵌套的和模块化的,这会使问题变得有点具体。然而,我可以说“val”只是一个简单的字符串。那么你的意思是,我可以在上面的代码之外有一个语法错误导致这个错误?我试着澄清一下我的问题。谢谢Sören!我如何重写它以避免这种情况?只需将其包装在parens中:(Maybe.withdefault100(仅42))就会产生相同的错误!删除带有
模型的行
?我需要案例返回“模型”。我想我在这里遗漏了一些东西(对于函数式编程来说是非常新的)。在从案例返回某些内容之前,是否可以执行一些任意代码?您希望
Maybe.withDefault…
以某种方式生成应该返回的模型。(也许这一行问题更适合elm slack,或者?)如果您想在返回某个内容(更新的模型)之前先进行一些计算,您可以使用
let…(此处的计算)。。。在…(此处返回值)
构造Elm。谢谢Sören!我如何重写它以避免这种情况?只需将其包装在parens中:(Maybe.withdefault100(仅42))就会产生相同的错误!删除带有
模型的行
?我需要案例返回“模型”。我想我在这里遗漏了一些东西(对于函数式编程来说是非常新的)。在从案例返回某些内容之前,是否可以执行一些任意代码?您希望
Maybe.withDefault…
以某种方式生成应该返回的模型。(也许这一行问题更适合elm slack,或者?)如果您想在返回某个内容(更新的模型)之前先进行一些计算,您可以使用
let…(此处的计算)。。。在…(此处返回值)
构造Elm。