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

Fil*_*und 0 elm

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

列出长度列表的情况0, 1, 2, ... n-1,然后n+1 :: _工作,但它非常详细.

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

Cha*_*ert 5

您只需要匹配三个项目的情况并处理每个其他组合_.这是一个将三个列表转换为三个大小的元组的示例,或者Nothing当列表不完全是三个项目时返回.

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