0
我有一個測試用例,我將一個長度爲3的列表傳遞給case
。由於榆樹不允許你錯過一個案子,所以我需要覆蓋其他案件(並且只返回Expect.fail "this should never happen"
)。Elm:匹配長度列表!= n
列出長度爲0, 1, 2, ... n-1
的清單,然後n+1 :: _
的作品,但它非常冗長。
如何匹配除3以外的任何長度的列表? (如果3是477,那該怎麼辦?)
我有一個測試用例,我將一個長度爲3的列表傳遞給case
。由於榆樹不允許你錯過一個案子,所以我需要覆蓋其他案件(並且只返回Expect.fail "this should never happen"
)。Elm:匹配長度列表!= n
列出長度爲0, 1, 2, ... n-1
的清單,然後n+1 :: _
的作品,但它非常冗長。
如何匹配除3以外的任何長度的列表? (如果3是477,那該怎麼辦?)
您只需要匹配三個項目的情況,並處理每個其他組合與_
。下面是一個將三個列表轉換爲三個元組的大小的示例,或者在列表不完全是三個項目時返回Nothing
。
toTuple3 : List a -> Maybe (a, a, a)
toTuple3 list =
case list of
a :: b :: c :: [] ->
Just (a, b, c)
_ ->
Nothing
你真的需要一個'case'或將一個'if'足夠好? –
@AntoineSnyers我想'if'也可以。這是一個我剛剛匹配的[1,2,3]。 –