Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Elm中将Maybe(List)转换为Just List?_List_Elm_Maybe - Fatal编程技术网

如何在Elm中将Maybe(List)转换为Just List?

如何在Elm中将Maybe(List)转换为Just List?,list,elm,maybe,List,Elm,Maybe,我有一个由字符串列表组成的列表,声明为: type alias Model = { board : List (List String) } init : Model init = { board = [ ["", "", ""] , ["", "", ""] , ["", &quo

我有一个由字符串列表组成的列表,声明为:

type alias Model =
    { board : List (List String)
    }

init : Model
init =
    { board = 
        [ ["", "", ""]
        , ["", "", ""]
        , ["", "", ""]
        ]
    }
在我的更新函数中,我试图通过访问列表的内部元素

(getAt col (getAt row model.board))
但是,当我试图编译它时,我得到了以下错误。如何从Maybe List转换为Just List或simply List

The 2nd argument to `getAt` is not what I expect:

65|                         (getAt col (getAt row model.board))
                                        ^^^^^^^^^^^^^^^^^^^^^
This `getAt` call produces:

    Maybe (List String.String)

But `getAt` needs the 2nd argument to be:

    List a

首先回答你的问题: 使用或

但是看起来你想做点什么,因为列表不是正确的解决方案

如果你有一个列表,并且你知道它从来都不是空的,那么使用类似

如果您知道每个列表中的条目数,请使用


对于2D板,我建议您创建自己的(不透明)自定义类型。或者可能会有帮助。

首先回答您的问题: 使用或

但是看起来你想做点什么,因为列表不是正确的解决方案

如果你有一个列表,并且你知道它从来都不是空的,那么使用类似

如果您知道每个列表中的条目数,请使用

对于2D板,我建议您创建自己的(不透明)自定义类型。或者可能会有帮助。

您可以尝试:

model.board
|> getAt row
|> Maybe.withDefault []
|> getAt col
甚至更好

model.board
|> getAt row
|> Maybe.andThen (getAt col)
(有关更多信息,请参见)

您可以尝试:

model.board
|> getAt row
|> Maybe.withDefault []
|> getAt col
甚至更好

model.board
|> getAt row
|> Maybe.andThen (getAt col)

(有关更多信息,请参阅)

就是这样,Elm强制您处理没有元素且
getAt
不返回任何内容的情况。您可以使用
案例。。可能是
或的。使用默认值可能还有其他方法,但所有这些方法都要求您指定在没有任何元素的情况下,在路上或其他情况下应该发生什么。这是否回答了您的问题?就是这样,Elm强制您处理没有元素且
getAt
不返回任何内容的情况。您可以使用
案例。。可能是
或的。使用默认值可能还有其他方法,但所有这些方法都要求您指定在没有任何元素的情况下,在路上或其他情况下应该发生什么。这是否回答了您的问题?