jede Zeichenfolge in einer Liste Betrachten wir als eine Liste von Zeichen
["hello","stack","overflow"] :: [[Char]]
Verkettung ist ein Prozess der Verbindung mehrerer Listen zu einem. Es muss einen folgenden Typ haben:
concat :: [[a]] -> [a]
Wenn Sie eine solche Funktion haben, erhalten Sie eine Hälfte Job erledigen. Sie suchen nach einem Weg,
["hellostackoverflow"]
als Ergebnis der Verkettung zu bekommen. Wieder einmal sieht es Typ:
["hellostackoverflow"] :: [[Char]]
Es ist die gleiche Art, wie Sie am Anfang hatte, außer, dass es nur ein Element in einer Liste ist. Sie brauchen also eine Funktion, die etwas in eine Liste bringt. Es muss
putToList :: a -> [a]
einen Typ haben Sobald Sie beide concat
und putToList
Funktionen haben werden, wird Ihre Lösung fast fertig. Das Letzte, was Sie tun müssen, ist es so, zu komponieren:
myConcatenation = putToList . concat
Ich schlage vor, Sie Hoogle nutzen vorhandene Funktion zur Suche nach seiner Art.
Soll das Ergebnis eine Zeichenfolge oder eine Liste mit einer Zeichenfolge sein? – Lee
'concat' - wenn Sie es in einer Liste möchten, verwenden Sie' return. concat '(vergiss die Type Annotation nicht, wenn du es in GHCi probierst:' return. concat $ ["Hallo", "stack", "overflow"] :: [String] ') – Carsten
@Lee meinte ich eine Liste mit eine Schnur. danke, es hat funktioniert. Schreibe es als Antwort, damit ich es akzeptieren kann: D. – Memphis