2016-04-19 10 views
3

Ich versuche, eine Liste von Elementen aus einem einfachen Array in ELM zu erstellen. Das erwartete Ergebnis ist buchstäblich nur eine Liste von Elementen mit 1 als erstes Element, 2 als zweites Element und so weiter.Wie gebe ich eine Liste von Elementen in Elm zurück

import Html exposing (..) 
import Html.Attributes exposing (class, id) 
import List exposing (map) 

theArray = [1,2,3,4,5,6] 

createListItem item = 
    li [] [ text (toString item)] 

buildList collection = 
    map createListItem collection 

builtList = ul [] [(buildList theArray)] 

main = 
    builtList 

Aber ich bekomme den Compiler Fehler auf Zeile dreizehn. Ich habe versucht, das Kartenelement in HTML zu kommentieren, aber ich sehe nicht, was ich tun soll.

The 2nd argument to function `ul` is causing a mismatch. 

*13| builtList = ul [] [(buildList theArray)]* 

Function `ul` is expecting the 2nd argument to be: 

    List VirtualDom.Node 

But it is: 

    List (List Html) 

Antwort

7

buildList bereits einen Wert vom Typ Rückkehr List Html, so dass Sie keine Klammern brauchen um (buildList theArray). Ändern Sie die Zeile 13 in:

builtList = ul [] (buildList theArray)