箭头应仅出现在大小写表达式和匿名函数中



我正在尝试检查给定键是否存在给定键的dict。我对Elm和函数式编程相对较新,所以我不确定我哪里出错了。

我收到的错误是:

箭头应仅出现在大小写表达式和匿名函数中。或 你想要>还是>=?

这是我尝试返回truefalse

dictExist : comparable -> Dict comparable v -> Bool
dictExist dict key =
    Dict.get key dict        
            Just -> True 
            Maybe.Maybe -> False

另一方面,我也尝试了Dict.member,但也没有成功,并且会假设我应该为此使用Dict.member而不是Dict.get......

您的代码有四个问题:

  1. 正如错误所指出的那样,您使用的是case ... of表达式外部的箭头。
  2. Maybe 类型的 Just构造函数具有伴随的值,即字典中的项,但您不会将其绑定到任何内容。您必须通过将它分配给通配符模式来显式丢弃它,_ .
  3. Maybe.Maybe不是构造函数。这应该是Nothing,它是Maybe类型的另一个构造函数。
  4. 你已经颠倒了dictExist的参数顺序

修复这些问题后,此代码应该可以工作:

dictExist : comparable -> Dict comparable v -> Bool
dictExist key dict =
    case Dict.get key dict of        
        Just _ -> True 
        Nothing -> False

但这实际上只是对具有完全相同类型签名的Dict.member的重新调整。因此,将dictExist的任何用法替换为Dict.member应该完全相同。

最新更新