可以使用带可扩展记录的Maybe吗?

时间:2018-03-13 15:50:33

标签: elm

我正在尝试编写一个函数来拉出可扩展记录列表,我想知道这是否可行。源代码如下,或参见Ellie链接here

module Temp exposing (..)

import Html exposing (text)


main =
    text "Hello"


items : Maybe List { data | id : Int } -> List { data | id : Int }
items maybeList =
    case maybeList of
        Just t ->
            t

        Nothing ->
            []

1 个答案:

答案 0 :(得分:5)

Maybe List { data | id : Int }解析为Maybe (List) ({ data | id : Int })。我不确定为什么错误消息会如此误导,但修复方法是将List ...包裹在()中,如下所示:

items : Maybe (List { data | id : Int }) -> List { data | id : Int }
              ^                        ^

编辑:此外,您的功能可以使用Maybe.withDefault简化:

items = Maybe.withDefault []