榆树:长度匹配列表!= n

时间:2016-10-22 09:48:34

标签: elm

我有一个测试用例,我将长度为3的列表传递给case。由于Elm不允许你错过一个案例,我需要覆盖其他案例(并且只返回Expect.fail "this should never happen")。

列出长度为0, 1, 2, ... n-1然后n+1 :: _的列表的案例,但它非常详细。

如何匹配除3之外的任何长度的列表? (如果3是477,那该怎么办?)

1 个答案:

答案 0 :(得分:5)

您只需匹配三个项目的大小写,并使用_处理其他所有组合。这是一个将三个列表转换为三个大小的元组的示例,或者当列表不完全是三个项目时返回Nothing

toTuple3 : List a -> Maybe (a, a, a)
toTuple3 list =
    case list of
        a :: b :: c :: [] ->
            Just (a, b, c)
        _ ->
            Nothing