2016-10-22 18 views
0

私は長さ3のリストをcaseに渡すテストケースを持っています。 Elmはあなたに事件を見逃すことができないので、私は他のケースをカバーする必要があります(そしてちょうどExpect.fail "this should never happen"を返す)。Elm:長さが一致するリスト!= n

長さ0, 1, 2, ... n-1、次にn+1 :: _のリストのケースをリストしますが、非常に冗長です。

3以外の長さのリストはどのように一致させるのですか? (3が477の場合はどうなりますか?)

+0

あなたは本当に 'case'が必要ですか'十分に良いif'でしょうか? –

+0

@AntoineSnyers私は 'if'もうまくいくと思います。それは私がマッチングしている 'Just [1,2,3]'だ。 –

答えて

5

3つのアイテムの大文字と小文字は一致させ、他の組み合わせはすべて_で処理する必要があります。次の例では、3つのリストをサイズ3のタプルに変換する例を示します。リストが厳密に3つの項目でない場合はNothingを返します。

toTuple3 : List a -> Maybe (a, a, a) 
toTuple3 list = 
    case list of 
     a :: b :: c :: [] -> 
      Just (a, b, c) 
     _ -> 
      Nothing 
関連する問題