2017-11-01 10 views
0

私はelm(0.18)のリストのリストを解体しようとしています。ここでは関数呼び出しです:elmのリストのリストを破る

この関数を呼び出す
twoColumns 
     [ [ Widget1, Widget2 ] 
     , [ Widget3, Widget4 ] 
     ] 

twoColumns : List List Widget -> Html Msg 
twoColumns listoflists = 
    case listoflists of 
     listLeft :: listRight :: _ -> 
     div [] 
      [ div [ class "col-md-6" ] (parsingOperation listLeft) 
      , div [ class "col-md-6" ] (parsingOperation listRight) 
      ] 
     _ -> 
     div [] [ text "Error" ] 

(。さんはparseOptionsは、引数としてList Widgetを受け入れることを仮定します)

これは単純な破壊のように思えるが、私はよこのエラーが発生する:

Tag `::` is causing problems in this pattern match. 

71|    listLeft :: listRight :: _ -> 
       ^^^^^^^^^^^^^^^^^^^^^^^^^^ 
The pattern matches things of type: 

    List a 

But the values it will actually be trying to match are: 

    List List Widget 

すべてのIDイージー?

パターン(listLeft::listRight::_)を使用しようとすると、elm-formatはそれを上記のパターンに戻します。

答えて

2

List List Widgetは、代わりにList (List Widget)である必要があります。 List List Widgetはまったく違う(そしてかなり無意味な)ことを意味するので。しかし、これはElmコンパイラがList List Widgetを許可する理由は非常に興味深いです。私はこれがコンパイラのバグだと思う。

関連する問題